Java を使用して、ssl 経由でサーバーの 1 つに接続しようとしています。ここで多くのオプションを試しましたが、私の最善の試みです:
私は推奨スクリプトで jssecacerts を生成します: http://blogs.oracle.com/andreas/resource/InstallCert.java コマンドで: java InstallCert ssl.someUrl.de changeit
この後、もう一度コマンドを実行しました:
Loading KeyStore jssecacerts...
Opening connection to ssl.someUrl.de:443...
Starting SSL handshake...
No errors, certificate is already trusted
Server sent 1 certificate(s):
1 Subject EMAILADDRESS=info@plesk.com, CN=plesk, OU=Plesk, O=Parallels, L=Hernd
on, ST=Virginia, C=US
Issuer EMAILADDRESS=info@plesk.com, CN=plesk, OU=Plesk, O=Parallels, L=Hernd
on, ST=Virginia, C=US
sha1 f1 0d 2c 54 05 e1 32 19 a0 52 5e e1 81 6c a3 a5 83 0d dd 67
md5 f0 b3 be 5e 5f 6e 90 d1 bc 57 7a b2 81 ce 7d 3d
Enter certificate to add to trusted keystore or 'q' to quit: [1]
ファイルをデフォルトのディレクトリにコピーし、Java trustStore に証明書をロードしました
System.setProperty("javax.net.ssl.trustStore", "C:\\Program Files (x86)\\Java\\jre6\\lib\\security\\jssecacerts");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
それから私は接続しようとします
URL url = new URL("https://ssl.someUrl.de/");
URLConnection conn = url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
そして、3行目にエラーが発生します:(ssl.someUrl.deに一致する名前が見つかりません)
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching ssl.someUrl.de found
これはデフォルトの plesk 証明書が原因ですか、それとも何か他の問題がありますか?
セットアップ: JRE 6.20、Netbeans 6.8、Windows7 64 ビット