我一直在使用证书,对称和非对称密钥以及与Web应用程序安全性相关的事情。我正在Tomcat 7中开发一个Web应用程序,我必须使用TLS在客户端和服务器之间进行安全的数据交换。在我的研究中,我找到了KeyStore Explorer(V。5.1)。
我有一些与使用此程序有关的问题。我知道这里可能不适合提出这些类型的问题,因为KeyStore Explorer的网站所有者有一个forum。但是,论坛不允许我创建新主题。
当我们创建一个新密钥对时,我们面对一个窗口,要求我们选择用于生成对的算法。选择后,生成密钥,然后向用户显示一个新窗口,其名称为“生成密钥对证书”:
这个屏幕上有些疑惑。在这个新屏幕中,程序请求用户选择签名算法,有效期和名称,其中必须填写来自用户实体密钥对的数据。
这是什么意思?我是否创建了自己签署的数字证书?如果我是,有没有办法只创建一个密钥对?我本来不应该创建一对,并从中创建一个CSR,将其发送到包含CSR的证书颁发机构(然后)请求数字证书的实体的详细信息(以防万一) ?
使用keytool,我相信我们只能创建一个密钥对。但有趣的是,当我们使用keytool创建一个密钥对的密钥库时,我们使用KeyStore Explorer打开生成的文件,并且该对似乎已由创建者自己签署,作为数字证书,例如:< / p>
(请注意,我们有两个字段,“subject”和“Issuer”......)
我真正想要的是能够创建密钥对,并且从生成的那对产生我想要创建CSR。我知道程序本身带有文档。我研究并阅读了名为“密钥对”的部分(“生成密钥对”主题等),但不幸的是我无法解决这种混乱。有人请向我解释我做错了什么,这一切意味着什么?
一如既往,感谢大家的关注和时间。
参考书目:
https://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html
http://ruchirawageesha.blogspot.com.br/2010/07/how-to-create-clientserver-keystores.html
答案 0 :(得分:4)
如以下网页所述,密钥对只能与至少一个证书一起存在于Java密钥存储区中。这就是为什么KeyStore Explorer(以及keytool)总是为新密钥对生成自签名证书的原因:
http://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html
创建新密钥对后,只需右键单击该条目,然后选择&#34;生成CSR&#34;。
在CA签署CSR证书后,再次右键单击密钥对并选择&#34;导入CA回复&#34;。然后,自签名证书将替换为CA中的证书。