什么是我不能用 keytool 做而我可以用 OpenSSL 做的事情?
虽然我的项目是基于java的,但我们仍然使用OpenSSL来生成密钥和证书。我不明白 OpenSSL 为何比 java 密钥库更好。
我无法使用 keytool 完成哪些操作,而使用 OpenSSL 可以完成?
Though my project is java based but we still use OpenSSL to generate keys and certificate. I don't understand how OpenSSL is better then java keystore.
What I can't do with keytool, that I can do with OpenSSL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于您的需求。
如果您只需要生成一个自签名证书用于测试目的,没有扩展(例如在
X.509 v1
证书中),那么在我看来,使用Keytool (注意:我不知道 Java 7 中的
Keytool
中是否引入了添加/更改)。此外,如果您只需要管理证书或使用
JKS
密钥库,Keytool
仍然是最佳选择。除此之外,您还需要使用强大的安全设施,当然就是 OpenSSL。
请注意,如果您只需要为测试生成快速证书/密钥库,您可以使用基于 Java 的工具,例如 Certificate Helper 也创建扩展。
但出于生产/互操作性以及朋友在评论中提到的所有原因,您将使用 OpenSSL。
It depends on your needs.
If you just need to generate a self-signed certificate for testing purposes with no extensions (like in
X.509 v1
certificates) then IMO it is much faster and convenient to useKeytool
(Note: I have no idea about if additions/changes have been introduced inKeytool
in Java 7).Additionally if you need just to manage your certificates or use
JKS
keystores,Keytool
is still the way to go.Other than that, you would need to use a robust security facility which would be certainly OpenSSL.
Note that if you just need to generate -fast- certificates/keystores for your testing you could use a Java based tool e.g. Certificate Helper which also creates extensions.
But for production/interoperability and all the reasons mentioned by friends in the comments you would use OpenSSL.