我的开发人员OP团队希望在我们的Java密钥库中使用中级CA证书。我相信在密钥库中添加中间证书的过程与添加“常规证书”的过程相同,对吗?是否有任何我需要注意的“陷阱”?另外,如何在测试中验证Java使用中间证书而不是使用CA进行检查?Java密钥库中的中间CA证书
回答
要回答为了您的问题:
我相信加入中间证书到密钥库是相同的过程,如添加一个“正规证书”,正确吗?
是的。例如,请参阅this VMWare documentation on installing intermediate CA's。
我需要注意哪些“疑难杂症”?
只有每个中间CA都需要它自己的别名。
此外,如何在测试中验证Java使用中间证书而不是使用CA进行检查?
如果你只是想验证它不检查根CA,那么就不要安装它,你知道它不能被使用。
更新:作为对@布鲁诺评论的回应,公平地指出,这个答案只能解决问题中提出的问题。我在这里假设,关于信任和证书分发的问题,首先有中间CA的正常原因,已经得到处理,并且这是所期望的解决方案。有关这些问题的更多信息,请参阅Bruno's answer。
您需要根据证书链进行推理。中间CA证书的目标是让远程方在最终实体证书(例如服务器或客户端证书本身)和另一个CA证书之间建立链。
如果您正在讨论将此中间CA证书导入将用作信任库的密钥库,则无论该CA证书是中间证书还是“根”CA证书都无关紧要:它将成为像使用该信任库的应用程序一样的可信锚点。
如果您在谈论用作密钥库的密钥库,则需要确保您的EEC将与正确的链一起出现。例如,我们假设CA_1为CA_2颁发证书,该证书颁发服务器S的证书。 您的客户在其受信任的锚(但不一定是CA_2)中拥有证书CA_1:您需要提供一个链“ S,CA_2“,以便他们可以通过CA_2验证链(否则,他们不知道如何将CA_1链接到S)。
为此,您需要确保S及其私钥的条目包含它需要发送的链(S,CA_2),而不仅仅是证书S.将密钥库中的单独条目中的CA_2导入将不会当提交证书S时,让JSSE为您建立链。
在this answer(尽管这是从客户端证书的角度来看)中描述了如何实现。
- 1. 从私钥和CA证书包创建java密钥库
- 2. 在Java中访问密钥库证书
- 3. 如何传递密钥,证书,ca和
- 4. 使用带有CA证书和无密钥库的SSLContext
- 5. 如何创建自己的自签名根证书和要在Java密钥库中导入的中间CA?
- 6. 从Windows密钥库对中间CA进行Java访问?
- 7. 进出证书Java密钥库
- 8. 无法用密钥,证书和CA为Tomcat创建密钥库证书链长度:1
- 9. 访问证书密钥库
- 10. 在pkcs11密钥库中存储证书
- 11. 从密钥库中加载证书
- 12. 将密钥和SSL证书导入到java密钥库
- 13. 创建从证书,中级证书和私有密钥库密钥
- 14. 如何将证书链及其证书导入java密钥库?
- 15. 向Java密钥库,JVM导入证书会忽略新证书
- 16. 将过期的SSL证书导入到Java密钥库中
- 17. 检查java密钥库中的证书到期日期
- 18. Java验证证书与密钥关联
- 19. 动态创建具有常见CA的SSL证书/密钥
- 20. Jmeter中的根CA证书
- 21. 在Java密钥库中存储X.509证书
- 22. 带密钥库证书的ARM模板
- 23. 是否可以使用SSL证书作为中间CA证书?
- 24. 如何在WebSphere中的可信证书密钥库中安装证书?
- 25. SSL证书中级CA
- 26. 如何将JKS证书/密钥转换为BouncyCastle证书/密钥
- 27. 了解密钥库,证书和别名
- 28. GoDaddy SSL证书密钥库安装Tomcat7
- 29. 动态SSL密钥库/证书选择
- 30. Keytool - 将证书导入密钥库
实际上有些问题需要注意,别名命名是最少的问题。不确定这与“与CA联系”有什么关系。证书吊销使用到CA的在线连接,建立一个可信赖的证书链没有。 – Bruno
@布鲁诺关于“联系CA”,你说得对...不知道脑屁是从哪里来的。固定。您在查看信任链设置时需要考虑其他问题是正确的,但在处理Jay提出的唯一问题时,则可以忽略这些问题。然而,我会添加一个声明来指出他们正在被忽略。 –