這件事一直在困擾我幾天。我讀過關於整個問題的很多其他問題,但仍然無法繼續。如何在Android中使用自簽名SSL證書
我已經創建了一個簡單的測試應用程序來測試Android上的SSL。應用程序只有一個按鈕,當點擊時,應用程序會嘗試通過SSL加密連接向我的測試服務器發送「Hello World」,然後使用完全相同的短語進行響應。
首先,我使用openssl爲我的服務器創建了一個測試密鑰和測試證書。然後我一直遵循Crazy Bob's blog中顯示的說明。我從Bouncy Castle的網站直接獲得了Bouncy Castle提供商,創建了一個可信的密鑰庫,如Crazy Bob的博客所示,並且我相信這一切都正確。
當我試圖運行我的代碼時,出現異常「IOException:密鑰存儲區的版本錯誤」。然後我在StackOverflow上找到了this question。在那裏有人建議我應該嘗試使用舊的充氣城堡供應商,而不是最新的bcprov-jdk15on-147.jar。我繼續記住這一點,並最終嘗試了從jdk13-146到jdk16-146的每個bcprovider。每次我仍然得到相同的「IOExcpetion:密鑰存儲的錯誤版本」。例外。
然後我發現yet another question關於StackOverflow上的類似問題。有人設法通過使用512位大小的密鑰而不是1024大小的密鑰來擺脫該異常。好吧,我試了一下,什麼都沒做,但同樣的例外。
所以我現在在這裏,想知道下一步該做什麼。我幾乎沒有想法和谷歌搜索結果。
我的網頁代碼是瘋狂鮑勃代碼的1對1副本,此外,應用程序只有處理按鈕的活動類。我試圖在API級別7上實現這一點。
任何幫助將不勝感激。謝謝。
如果您將目標API移動到類似10或14的東西,它是否會開始工作?在處理較舊的API級別時,測試較新的API並不是一個壞主意,只是爲了確保它不是兼容性問題。 – matt5784
我需要爲大腦樹的Android項目創建「.pem」文件。我安裝了openssl並運行以下命令:openssl> s_client -connect $ https://xxx.xxx.xx:443 2>&1 | \ sed -ne'/ -BEGIN CERTIFICATE - /,/ - END CERTIFICATE-/p'> mycert.pem 但我在s_client中出錯。請幫幫我。我從Crazy Bob的博客得到命令。 –