我有SSL客戶端證書。它正在與我的應用程序一起工作,直到最近發生的某個Java更新(也許早在一年之前)。它適用於Web瀏覽器。它適用於捲曲。如何在Java 8.31上使用客戶端證書
例如,我可以做到這一點,它是罰款:
curl --cert example.pem https://example.net
現在我不能得到這個證書與Java的工作。我已經盡力嘗試一個非常小的應用程序,如來自https://gist.github.com/4ndrej/4547029的SSLPoke
將證書放入ControlPanel的客戶端證書中並沒有這樣做。
導入的.pem到密鑰庫中,然後在該密鑰庫指向與-Djavax.net.ssl.trustStore
或.keystore
沒有做到這一點。
我得到的Java應用的是:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
所以我無法弄清楚什麼是錯的 - 我調用java的方法是什麼?我要放證書的地方?我輸入證書的方式?
使用-Djava.security.debug=all
的調試輸出不會使用我指定的trustStore/keyStore顯示它。它甚至沒有顯示任何關於我想要達到的URL。
我出來的想法。
我不認爲這是問題 - 捲曲的詳細輸出顯示它使用TLS1.2: '*使用TLSv1.2工作/ ECDHE-RSA-AES256-GCM-SHA384' SSL連接 –