使用 SSL 和 Tomcat 遇到了另一个问题:我配置了一个密钥库,其中包含一个密钥和一个证书(我希望向连接到该站点的客户端提供的服务器证书)。我对信任库做了同样的事情(我需要客户端身份验证)。
我现在遇到的问题是,当我通过 HTTPS 连接到我的 Tomcat 实例时,提供给我的证书(服务器证书)不是我的实际服务器证书,而是JKS密钥库中的密钥。使用 -Djavax.net.debug=ssl 表明它为客户端身份验证提供了正确的 CA,但不是正确的服务器证书。
添加为受信任的证书: 主题:CN=A 发行人:CN=A 算法:RSA;序列号: - 有效期为 2009 年 11 月 10 日星期二 14:48:31 CET 至 2010 年 2 月 8 日星期一 14:48:31 CET 添加为受信任的证书: 主题:X 发行人:X 算法:RSA;序列号: - 有效期为 2005 年 1 月 19 日星期三 01:00:00 CET 至 2015 年 1 月 19 日星期一 00:59:59 CET
我已经用占位符替换了实际值。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 实例没有提供正确的证书吗?