关于为 Tomcat 安装证书的文档有很多,但有没有关于如何续订/更新证书的说明?例如,当我尝试按照tomcat 文档,我得到以下信息:
keytool -import -alias root -keystore keystore.pkcs12 -trustcacerts -file ~/tempCerts/gd_bundle-g2-g1.crt
Enter keystore password:
keytool error: java.lang.Exception: Certificate not imported, alias <root> already exists
那么,我是否需要先删除“root”别名才能执行此操作,还是应该选择其他方法来更新证书?或者还有其他方法可以更新/更新证书吗?
再重复一遍,我说的不是证书的初始安装/导入,这方面有详尽的记录。我说的是证书的续订/更新。
操作系统:CentOS Linux release 7.6.1810 (Core)
雄猫:8.5.37
Java:OpenJDK Runtime Environment (build 1.8.0_212-b04), OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
答案1
好的,经过多次尝试和错误,我找到了这个。文章和帖子末尾的参考资料对我有帮助。这是针对 GoDaddy 的,但我想其他提供商也会有类似的方法。
GoDaddy 给了我以下文件:
-rw-rw-r--. 1 wmsodbc wmsV9 1728 Jul 14 09:20 gdig2.crt.pem
-rw-rw-r--. 1 wmsodbc wmsV9 4795 Jul 14 09:20 gd_bundle-g2-g1.crt
-rw-rw-r--. 1 wmsodbc wmsV9 2403 Jul 14 09:20 ddd1343aff339165.pem
-rw-rw-r--. 1 wmsodbc wmsV9 2403 Jul 14 09:20 ddd1343aff339165.crt
在网上查找后,我知道 gdig2 文件是中间证书,而 bundle 包含根证书和中间证书。这邮政建议分解根证书和中间证书,但更简单的方法是直接前往 godaddy 存储库并使用 下载根证书curl https://ssl-ccp.godaddy.com/repository/gdroot-g2.crt > gdroot-g2.crt
。
脚步:
- 复制当前密钥库,名为 keystore.2020Renewal
- 使用以下命令删除 root 别名
sudo keytool -storepass <password> -delete -alias root -keystore keystore.2020Renewal
- 删除中间别名
sudo keytool -storepass changeit -delete -alias intermed -keystore keystore.2020Renewal
- 使用导入根
sudo keytool -storepass <password> -import -alias root -keystore keystore.2020Renewal -trustcacerts -file ~/tempCerts/gdroot-g2.crt
- 进口中间体使用
sudo keytool -storepass <password> -import -alias intermed -keystore keystore.2020Renewal -trustcacerts -file ~/tempCerts/gdig2.crt.pem
- 使用导入主证书
sudo keytool -import -alias tomcat -keystore keystore.2020Renewal -storepass <password> -file ~/tempCerts/ddd1343aff339165.crt
- 更改 server.xml 以使用这个新的密钥库
- 重新启动 tomcat 以确保更改生效
上次我这样做时,我想我做了类似的事情。因此,这至少应该适用于一些与 tomcat 相关的 SSL 续订情况。
Tomcat 参考(部分无用,因为它们不处理“更新”,只有初始设置,但是不错的起点)
2022 年更新:我能够再次按照上述步骤操作,并取得成功。根据另一篇帖子,我确实尝试过keytool -delete -alias tomcat -keystore <keystore copy>
(在上述第 3 步之后),但当我导入根证书、中间证书和新证书时,生成的密钥库较小,并且不起作用。基本上,我有两个密钥库副本,一个我删除了根证书、中间证书和 tomcat,然后按正确的顺序导入了新的。另一个我按照上述说明操作。第二个没有任何问题,第一个在访问日志中一直给我 HTTP 401 错误。所以,总而言之,从理论上讲,截至 2022 年,遵循上述说明仍然有效。