我有一个Tomcat服务器,其中包含存储在Java密钥库中的HTTPS证书链。该链包括自签名根CA证书。虽然the TLS spec显然没有问题,但有些验证服务会对此提出警告,it's probably better to leave it off。
如何编辑密钥库以仅删除自签名的根CA证书,但保留链的其余部分和私钥完整?
答案 0 :(得分:9)
首先,将密钥库从JKS转换为PKCS12(此命令和其他命令将需要密码输入):
keytool -importkeystore -srckeystore old.jks -destkeystore old.p12 -deststoretype pkcs12
接下来,使用PKCS12文件中的密钥和证书导出PEM文件:
openssl pkcs12 -in old.p12 -out pemfile.pem -nodes
现在只需使用文本编辑器编辑pemfile.pem
并删除违规证书(及其先前的“行包属性”)。
接下来,将已编辑的PEM文件加载到新的PKCS12文件中。您需要为证书/密钥提供适当的密钥库别名,例如: “tomcat”,在这一点上。
openssl pkcs12 -export -in pemfile.pem -name tomcat -out new.p12
最后,从PKCS12转换回JKS:
keytool -importkeystore -srckeystore new.p12 -destkeystore new.jks -srcstoretype pkcs12
文件new.jks
就是您想要的。
答案 1 :(得分:0)
keytool-删除-alias -keystore lib / security / cacerts -storepass changeit