1

Im與Android應用上的團隊一起工作,並分配了設置用戶登錄和註冊頁面的任務。設置我的服務器類後,使用HttpsURLConnection類,我得到SSLHandshakeException錯誤。

HttpsURLConnection的代碼
HttpsURLConnection connection = (HttpsURLConnection) new URL(spec.toString()).openConnection();

經過一番研究,我意識到這是因爲Android不信任我們的服務器,因爲它是自簽名。我試圖從Android開發站點跟蹤這個documentation,但不知道如何獲取crt文件。即時通訊使用AWS服務器,但我不是設置自簽名證書的人,但我確實擁有對服務器的完全訪問權限。

從Android的文件(我如何獲得負載der.crt文件?)使用來自AWS服務器的自簽名證書在Android上設置HTTPS連接

// Load CAs from an InputStream 
// (could be from a resource or ByteArrayInputStream or ...) 
CertificateFactory cf = CertificateFactory.getInstance("X.509"); 
// From https://www.washington.edu/itconnect/security/ca/load-der.crt 
InputStream caInput = new BufferedInputStream(new FileInputStream("load-der.crt")); 
Certificate ca; 
+0

那個washington.edu網址不再可用。 –

回答

0

繼承人我如何獲得認證證書,雖然這個答案可能不是給別人很大的幫助。我問服務器管理員,他把它給了我。我相信他在SSH進入服務器時從一些bash代碼生成證書。然後,我在main中創建了一個assets文件夾,並將證書文件放在那裏。我得到了這行代碼爲InputStream in = context.getAssets().open("my_cert.crt")的輸入流。

0

我以這種方式獲取證書: 在瀏覽器中按f12。進入網站或撥打服務器電話,例如「google.com」。選擇「安全」選項卡。您應該看到安全信息,包括「查看證書」選項。點擊它。轉到「詳細信息」。選擇「複製到文件」。

相關問題