Groovy コードを使用して、jdk 1.7.0_25にデプロイされたアプリケーションの https xml URL にアクセスしようとしています。しかし、groovy は、groovy コードのこの行に対して例外をスローします -
URL url = new URL("https://my.company.com//path/to/xml")
URLConnection urlConnection = url.openConnection()
def xml = new XmlSlurper().parse(url.toString())
//Parse the XML here....and perform operations
例外 javax.net.ssl.SSLProtocolException: ハンドシェイク アラート:unrecognized_name
回避策として、証明書階層my.company.cerから my.company.comをブラウザーを介して、開発環境がセットアップされているローカルキーストアにインポートしようとしました。以下はコマンドです -
1. keytool -importcert -alias "mycompany-ca" -file my.company.cer
2. keytool -import -file my_company.cer -keystore "C:\Program Files\Java\jdk1.6.0_30\jre\lib\security\cacerts" -trustcacerts -storepass "changeit"
そして、証明書がローカルの信頼ストア「jdk1.6.0_30\jre\lib\security\cacerts」に正常に追加されました。その後、Groovyコードを介してhttps URLを介してxmlにアクセスできました。そこで、サーバー環境のローカル キーストアに同じ証明書をさらにインポートしてみました。
しかし問題は、この回避策がランダムに機能することです。サーバーから https URL を介してこの xml に正常にアクセスできる場合もあれば、スクリプトを変更せずに同じエラーがランダムに発生する場合もあります。
サーバー環境のローカル信頼ストアにルート証明書をインポートする必要がありますか?
Groovy 自体でこの SSL 例外を処理するにはどうすればよいですか?
申し訳ありませんが、私はこれに完全に慣れていません。ポインタとヘルプをいただければ幸いです。