2014-07-11 82 views
1

我開發了一個應該使用基於X509的身份驗證的項目。我遵循IBM Worklight入門模塊開發此項目。這些步驟是,IBM Worklight 6.1中基於證書的身份驗證X509

  1. 創建根CA
  2. 創建簽名CA
  3. 創建服務器證書
  4. 服務器證書
  5. 出口的簽名CA
  6. 導出PKCS12文件創建證書鏈用於服務器證書的PKCS12文件
  7. 爲SSL配置IBM Websphere Liberty Profile

然後,我在authenticationConfig.xml文件中給出了模塊中的登錄模塊,領域和安全測試詳細信息。之後,我創造了一個挑戰處理器的領域。我給了適配器程序的安全測試。

我已經在Android模擬器中使用ReamlB安裝了根CA.然後我在Android模擬器中安裝了該項目。嘗試訪問適配器過程時,它顯示登錄表單以輸入憑據。我輸入憑證作爲'worklight',並輸入登錄名。但它顯示了以下錯誤。 enter image description here
logcat消息是here

現在,我有兩個疑問。

  1. 是否有任何默認證書可供使用,以便證書只接受該證書。
  2. 當我下載IBM Worklight Getting Started Module提供的示例項目時,它包含openssl.cnf文件和user_certificate_setup.sh文件。但是在模塊中沒有辦法生成.sh文件並將其包含在項目中。

我面對的錯誤是什麼,有什麼線索!

在此先感謝!

+0

你可以發佈Logcat中的日誌來查看它顯示的錯誤嗎? –

回答

1

對不起,暫時不回答;顯然這個問題與應用真實性有關,並且與用戶證書認證沒有直接關係。如果您在測試中使用應用真實性,請將其取出,並且應該可以正常工作。

+1

太棒了!這很奏效 – sasi

1

以下是一些可能導致其失敗的情況,但正如我在評論中所說的,請張貼日誌以便弄清楚失敗的原因。

兩種最可能的情況是,您的設備不信任服務器,或者證書未正確創建(特別是如果您使用中間CA,則可能是證書鏈的內置順序不正確) 。

要排除第一種情況(設備不信任服務器),請編輯您的authenticationConfig.xml以使用戶證書領域脫離安全測試。如果應用程序可以正確連接,那麼設備實際上信任服務器的證書,但如果它無法連接,則意味着您沒有正確配置設備以信任服務器。確保當您進入設置>安全>可信憑證>用戶選項卡時,您可以看到您在那裏創建的證書。如果您在那裏看不到您的證書,則表示它尚未正確導入。這通常是因爲您沒有爲Android導入正確的格式,這是一個擴展名爲.crt的DER編碼的證書文件。如果你有.pem或者。CER文件,你可以嘗試做在終端下(對於Linux和Mac只;再看OpenSSL文檔的Windows平臺上類似):

openssl x509 -inform PEM -outform DER -in CA.pem -out CA.crt 

有關如何做到這一點的更多信息和截圖,看看此處:http://www.jethrocarr.com/2012/01/04/custom-ca-certificates-and-android/另請注意,在本網站中,他們通過使用adb將證書從計算機推送到設備的證書,但出於測試目的,您可以將證書通過電子郵件發送給自己,或將其放入設備可下載的服務器中它從,然後打開設備內的附件/下載來安裝它。這不是在生產環境中配置實際設備的安全方式,但出於測試目的,通過這種方式通常比通過ADB推送更容易。

如果您的設備正確信任服務器的證書,並且您可以在沒有用戶證書領域的情況下進行連接,那麼這表明問題出在證書由簽署CA創建,這通常發生在證書鏈不在正確的順序。

這是一般性建議,但我需要查看日誌才能告訴您確切的問題是什麼。我在這裏所說的大部分內容都可以在the User Certificate Authentication realm troubleshooting.And here is the rest of the User Certificate feature documentation中找到,以備將來參考。

此外,我不確定我是否理解「默認憑據」的含義,因爲用戶證書不需要您必須使用的特定憑證;如果您想測試而不必輸入有效憑證,則可以使用非驗證用戶領域「登錄」您的用戶。

+0

我編輯了我的問題以顯示logcat。 '默認憑證'的意思是,當我試圖訪問受保護的資源時,它要求輸入用戶名和密碼[來自入門模塊的示例應用程序],我將它作爲'工作燈'提供。所以我懷疑是否需要提供任何其他用戶名和密碼才能訪問受保護的資源。 – sasi

+0

當你得到logcat輸出時,它是否顯示相同的錯誤? logcat輸出表示它已成功連接到服務器:它說:「response [httpS:// IPAddress:9443/worklight/apps/services/api/Authentication/android/init] success:/ * --secure- 07- 13 17:44:31.299:D /身份驗證(660):{「userPrefs」:{},「WL-Authentication-Success」:「...成功意味着它對服務器正確認證,所以問題不在於認證部分。您是否嘗試聯繫適配器或服務器中可能失敗的其他內容? –

+0

是的,我想連接一個適配器。但是當我將securityTest添加到application-descriptor.xml時,它顯示了同樣的錯誤。 – sasi

相關問題