SSLとTomcatを使用して別の問題が発生しました。キーと証明書(サイトに接続しているクライアントに提示したいサーバー証明書)を含むキーストアを構成しました。トラストストアについても同じことを行いました(クライアント認証が必要になります)。
私が今抱えている問題は、HTTPS経由でTomcatインスタンスに接続するときに、提示される証明書(サーバー証明書)が実際のサーバー証明書ではなく、JKSキーストアのキーであるということです。-Djavax.net.debug = sslを使用すると、クライアント認証に正しいCAが提示されているが、正しいサーバー証明書は提示されていないことがわかります。
信頼できる証明書として追加: 件名:CN = A 発行者:CN = A アルゴリズム:RSA; シリアルナンバー: - 2009年11月10日火曜日14:48:31CETから2010年2月8日月曜日14:48:31CETまで有効 信頼できる証明書として追加: 件名:X 発行者:X アルゴリズム:RSA; シリアルナンバー: - 2005年1月19日水曜日01:00:00CET2005から2015年1月19日月曜日00:59:59CETまで有効
実際の値をプレースホルダーに置き換えました。A =サーバーのドメイン名(ただし、この場合、何らかの理由でこれがキーであり、証明書ではありません)。X = VeriSign CA(これは正しいはずです)。クライアントに提示するために使用したい既存の証明書があり、keytoolを使用してJKSキーストアにインポートしました。
Tomcatコネクタ構成:
<Connector port="444" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/ssl/keystore.jks"
keystorePass="xx"
keyAlias="testkey"
truststoreFile="conf/ssl/truststore.jks"
truststorePass="xx" />
Tomcatインスタンスが正しい証明書を提示しない理由はありますか?