web-dev-qa-db-ja.com

Apache-Tomcatを構成して、サーバー間のhttpsリクエストに対して内部認証局を信頼する方法

Apache/Tomcatで実行している自分のWebサーバー内からWebサービス呼び出しを実行する必要があります。 Linuxで実行されているApache/Tomcatは、SSLに内部認証局(CA)を使用するHTTPS経由でIISを実行しているMicrosoftサーバーを呼び出す必要があります。

Apache/TomcatがこのCAからの適切なルート証明書を信頼するようにするにはどうすればよいですか?

また、この信頼が機能していることをどのようにテストしますか? Apache/Tomcatをホストしているサーバーからのブラウザ要求では不十分だと思います。

5
Kirk Liemohn

すでにCA証明書を「internal-ca.pem」などのファイルにエクスポートしていると思います。また、IISサーバーへのSSL接続を開始するのはTomcatであると想定しています。

君は できる Java keytoolを使用して、Tomcatエンジンで使用されているJavaキーストアに証明書をインポートする必要があります。CA証明書のキーストアは$ Java_HOME/jreです。/lib/security/cacerts。新しいinternal-ca.pem証明書をこのキーストアにインポートするには、次を使用します。

$Java_HOME/bin/keytool -importcert \
  -keystore $Java_HOME/jre/lib/security/cacerts \
  -file /path/to/internal-ca.pem  \
  -trustcacerts -alias internal-ca-1

キーストアのデフォルトのパスワードは次のとおりです。changeit

証明書がキ​​ーストアにあることを確認します。

$Java_HOME/bin/keytool -list \
  -keystore $Java_HOME/jre/lib/security/cacerts -v | less

サーバーへの接続をテストします。

openssl s_client -CAfile /path/to/internal-ca.pem -connect server:port

これにより、出力の終わり近くにあるはずです。

Verify return code: 0 (ok)

Tomcat内から信頼をテストする場合は、テストコードを記述して行う必要があります。申し訳ありませんが、Javaは知りません。 :-)

10
unixtippse
SSLProxyEngine on
SSLProxyCACertificateFile /etc/ssl/internal-ca.crt
SSLProxyVerify require
1
ptman