我的客户端运行Tomcat 5.5并使用SSL。 他们的证书即将到期,他们已经购买了续约。 我被给了一个.cer文件,并要求更新Tomcat。
现有的server.xml包含以下连接器:
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="companyname.keystore" keyAlias="tomcat2" />
我运行了%JAVA_HOME%\bin\keytool -list -keystore companyname.keystore
Keystore type: jks Keystore provider: SUN Your keystore contains 3 entries root, Aug 7, 2007, trustedCertEntry, Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC tomcat, Jun 12, 2007, keyEntry, Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F tomcat2, Jun 14, 2008, keyEntry, Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96
如果我删除别名为“tomcat”的条目,SSL仍然有效。 我假设这是来自以前过期证书的工件。
%JAVA_HOME%\ bin \ keytool -import -keystore companyname.keystore -alias tomcat3 -file 2009cert.cer
我更新了server.xml以将keyAlias设置为tomcat3。 当我重新启动Tomcat时,我在日志中看到:
SEVERE: Error initializing endpoint java.io.IOException: Alias name tomcat3 does not identify a key entry at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.getKeyManagers(JSSE14SocketFactory.java:143) (etc.)
当我重新运行keytool -list命令时:
Keystore type: jks Keystore provider: SUN Your keystore contains 4 entries root, Aug 7, 2007, trustedCertEntry, Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC tomcat, Jun 12, 2007, keyEntry, Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F tomcat3, Jul 21, 2009, trustedCertEntry, Certificate fingerprint (MD5): 8E:9F:F9:52:7B:07:B1:DB:BF:F3:96:BD:5F:49:2E:9F tomcat2, Jun 14, 2008, keyEntry, Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96
这是否与被标记为“trustedCertEntry”而不是“keyEntry”的tomcat3条目有关?
我究竟做错了什么?
它注册为TrustedCert的事实似乎表明,没有关键的tomcat3。 这个新证书很可能是针对现有密钥tomcat2的。 密钥本身不会过期,只是证书。
您可以随时通过生成新的证书签名请求或通过重新使用原始的证书来请求新的证书。 获取密钥库的备份副本,然后导入tomcat2别名的证书。
%JAVA_HOME%\bin\keytool -import -keystore companyname.keystore -alias tomcat2 -file 2009cert.cer
在那之后,你也要把你的tomcat实例指向tomcat2。