修正「java.security.cert.CertificateException:不存在主題備用名稱」錯誤
使用Java 透過HTTPS 使用Web 服務時客戶端,您可能會遇到「java.security.cert.CertificateException:不存在主題備用名稱」錯誤。要解決此問題,請仔細按照以下步驟操作:
-
取得伺服器憑證:執行指令openssl s_client -showcerts -connect AAA.BBB.CCC.DDD:9443 > certs .txt 以檢索伺服器的憑證。
-
提取證書內容:找到-----BEGIN CERTIFICATE----- 和- 之間的「certs.txt」部分----END CERTIFICATE---- - 並將其保存在單獨的文件中。
-
修改憑證(選用):如有必要,請更新憑證名稱以符合 IP 位址伺服器的 (AAA.BBB.CCC.DDD)。但是,僅在您可以控制伺服器的情況下建議修改憑證。
-
匯入憑證:使用 keytool 指令將修改過的憑證匯入到您的金鑰庫中。例如: keytool -importcert -file fileWithModifiedCertificate -keystore mykeystore.
-
停用HTTPS 檢查(僅用於測試目的):如果您使用該服務進行測試並且不需要安全通訊服務,您可以透過新增繞過憑證驗證和主機名稱驗證的程式碼來暫時停用HTTPS 檢查。不建議將此解決方案用於生產用途。
或者,您可以使用類似問題中的建議,該建議指出,如果您不控制伺服器,則應使用其主機名稱。這是因為憑證可能包含與主機名稱相符的 CN(通用名稱)。
請記住,這些步驟旨在解決伺服器憑證中缺少主題備用名稱的特定問題。根據您的環境和您使用的特定服務,可能會有所不同或需要額外的配置。
以上是如何修復'java.security.cert.CertificateException:不存在主題備用名稱”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!