この記事では、SSL 接続(HTTPS)を使用して Adobe Campaign への接続を設定しようとしたときに発生する可能性がある問題について説明します。
ログに次のエラーが主に発生した場合:
Caused by: javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source) at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) ... 257 common frames omitted
この問題の考えられる原因としては、JDK 1.7.x 以降を実行していて、一部の設定が欠落していることです。
1. jvm パラメーターとして -Djsse.enableSNIExtension=false を使用できます(有効にするためにここでサーバーの再起動が必要になることがあります)
2. SSL 接続のデバッグを向上させるために、jvm パラメーターへの -Djavax.net.debug=all を有効にし、ログの情報が適切な certificat などを使用しない理由に関するさらなるヒントを与えるかどうかを確認できます。
3. システムで次のようなコマンドを使用して、証明書をインポートすることはできません。
sudo keytool -import -trustcacerts -alias <your certificate alias> -file <path to>/ca.crt -keystore <path to JRE home>/lib/security/cacerts
MacOS の例:
sudo keytool -import -trustcacerts -alias <your certificate alias> -file ca.crt -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/cacerts
このトピックに関する Oracle の注意は、ここ(1)から入手できます。
(1) http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7127374
適用対象:AEM CQ6.x