問題:
我無法使用SSL 伺服器套接字。儘管啟用了所有可能的密碼套件和協議,我還是收到了SSLHandshakeException,指出「沒有共同的密碼套件和協議,我還是收到了SSLHandshakeException,指出「沒有共同的密碼套件。」
答案:
問題在於。提供空 KeyManager 陣列會導致缺少 RSA 或 DSA 憑證的空 KeyManager。這不允許使用依賴這些憑證的預設密碼套件,並最終導致錯誤。若要解決此問題:
KeyStore ks = KeyStore.getInstance("JKS"); InputStream ksIs = new FileInputStream("..."); ks.load(ksIs, "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(ks, "keypassword".toCharArray());
SSLContext sc = SSLContext.getInstance("TLSv1.2"); sc.init(kmf.getKeyManagers(), null, new SecureRandom());
以上是使用 SSLServerSocket 時,為什麼我會收到「SSLHandshakeException:沒有共同的密碼套件」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!