Apache Ace と管理エージェントの間で双方向の SSL 認証を有効にしようとしています (ドキュメントhttp://ace.apache.org/dev-doc/design/using-client-certificates.htmlに従ってください)。これを実現するには、まず、以下の手順に従って必要な証明書を作成しました。
ステップ #1) 以下のコマンドを実行して、OpenSSL を使用して自己署名認証局を作成しました。
openssl req -x509 -new -config Certi/X509CA/openssl.cnf -days 365 -out Certi/X509CA/ca/new_ca.pem -keyout Certi/X509CA/ca/new_ca_pk.pem
このコマンドは、証明書 new_ca.pem とその秘密鍵 new_ca_pk.pem を作成しました。
ステップ #2) 次のコマンドを使用して、証明書 new_ca.pem を truststore という名前のキーストア ファイルにインポートしました。
keytool -import -alias truststore -keystore truststore -file new_ca.pem
手順 3) keystore-ma.jks という名前の Java キーストア ファイルで使用可能な、管理エージェント用の証明書を作成しました。
keytool -genkey -dname "CN=<hostIP>, OU=IT, O=<Organization Name>, ST=UP, C=IN" -validity 365 -alias keystore-ma -keypass secret -keystore keystore-ma.jks -storepass secret
ステップ #4) CSR を作成しました。
keytool -certreq -alias keystore-ma -file keystore-ma_csr.pem -keypass secret -keystore keystore-ma.jks -storepass secret
手順 5) 手順 1 で作成した認証局を使用して証明書に署名します。
openssl ca -config X509CA/openssl.cnf -days 365 -cert C:/X509CA/ca/new_ca.pem -keyfile C:/X509CA/ca/new_ca_pk.pem -in C:/X509CA/ca/keystore-ma_csr.pem -out C:/X509CA/ca/keystore-ma.pem
ステップ #6) keystore-ma という名前の kestore ファイルに証明書をインポートしました
keytool -import -alias keystore-ma -keystore keystore-ma -file keystore-ma.pem
同様の手順 (3 ~ 6) に従って、keystore-server と呼ばれる Java キーストア ファイルで使用可能な証明書または ACE サーバーを作成して署名します。
次に、Ace Server の Platform.properties を更新して追加のプロパティを含め、Ace Server を起動しました。
-Dorg.osgi.service.http.port.secure=8443
-Dorg.apache.felix.https.enable=true
-Dorg.apache.felix.https.truststore=/path/to/truststore
-Dorg.apache.felix.https.truststore.password=secret
-Dorg.apache.felix.https.keystore=/path/to/keystore-server
-Dorg.apache.felix.https.keystore.password=secret
-Dorg.apache.felix.https.clientcertificate=needs
次のコマンドで ace-launcher.jar を開始しました。
java -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=secret -Djavax.net.ssl.keyStore=/path/to/keystore-ma -Djavax.net.ssl.keyStorePassword=secret -jar org.apache.ace.launcher-0.8.1-SNAPSHOT.jar discovery=https://<Ace Server Ip>:8443 identification=MyTarget
発見URLをに変更して、何度も試しました
1) https://<Ace Server Ip>:8080
2) http://<Ace Server Ip>:8080
3) https://<Ace Server Ip>:8443
しかし、ターゲットは Ace サーバーに登録されていませんでした。HTTPS 経由で Ace サーバーに接続するために正しい URL を使用していますか? また、Ace サーバーが管理エージェントからの HTTPS トラフィックを受け入れるように構成されているかどうかを確認する方法は?