この特定の質問については、インターネットでの検索が非常に複雑であることがわかっています。おそらく、あなたは私を正しい方向に向けることができますか?
自己署名証明書を使用して (HTTPS ではなく) SSL/TLS サーバーをセットアップしました。私はそれに正常に接続し、Node.JSを使用してテストしました
var sock = tls.connect({
host:'127.0.0.1',
port:443,
servername:'foobar',
ca: fs.readFileSync('foobar-cert.pem')
}, function () {
if(sock.authorized)
console.log('secure connection - yea!')
else
console.log('Not Secure because ' + sock.authorizationError)
})
しかし、Java で同等のサンプル コードを見つけることができないようです。
サーバー認証用の自己署名証明書ファイルを使用して、Java で TLS サーバーに接続するにはどうすればよいですか? 自己署名証明書は実行時に読み込まれ、コンピュータの共有 CA ファイルにはインストールされません。
これまでに見つけた最良の答えには、外部ライブラリが必要です。Javaには必要なものが組み込まれており、外部ライブラリはまったく必要ないと確信しているため、これは私の最後の手段です。
編集:質問を再開する際の迅速な対応に感謝します。
編集: Java に自己署名の ssl 証明書を受け入れるように指示したことの複製として、私の質問が閉じられたようです。私の質問には、上で述べた追加の要件があるため、これは正しくありません。
提案: 「証明書... JVM トラストストアにインポートする」
私の要件は「自己署名証明書 ... コンピューターの共有 CA ファイルにインストールされていません」提案:「証明書の検証を無効にする」(推奨されません)
私の要件「実行時に自己署名証明書がロードされる」 (およびサーバーの検証に使用される)提案: 「keytool を使用してそれをトラストストアにインポートします」
私の要件は「自己署名証明書 ... コンピューターの共有 CA ファイルにインストールされていません」