据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并且代表您打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利…
我很想了解使用keytool时如何/何时区分商店。
因此,到目前为止,我已经使用
keytool -import -alias bob -file bob.crt -keystore keystore.ks
这将创建我的keystore.ks文件。我回答yes
了我是否信任bob的问题,但是我不清楚这是否创建了密钥库文件或信任库文件?我可以将我的应用程序设置为使用该文件。
-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
并与System.setProperty("javax.net.debug","ssl")
设置,我可以看到根据该证书信任认证(但不是下的密钥库部分)。我要导入的特定证书只有一个公共密钥,我打算用它通过SSL连接将数据发送给Bob(但这可能是另一个问题了!)。
任何指针或澄清将不胜感激。无论您导入什么,keytool的输出是否都是相同的,并且其公正的约定说一个是密钥库,另一个是信任库?使用SSL等时有什么关系?
该术语是有点混乱确实,但两者javax.net.ssl.keyStore
并javax.net.ssl.trustStore
用来指定密钥库来使用,用于两个不同的目的。密钥库有多种格式,甚至不一定是文件(请参阅此问题),keytool
它只是对密钥库执行各种操作(导入/导出/列表/ …)的工具。
的javax.net.ssl.keyStore
和javax.net.ssl.trustStore
参数用于建立默认参数KeyManagerS
和TrustManagerS
(分别地),然后用于构建SSLContext制备SSL经由/ TLS连接时,其基本上包含SSL / TLS设置来使用SSLSocketFactory
或SSLEngine
。这些系统属性正是默认值的来源,然后SSLContext.getDefault()
由SSLSocketFactory.getDefault()
(例如)本身使用。(如果您不想将默认值和特定的SSLContexts
用于给定目的,则可以在许多地方通过API定制所有这些。)
的之间的差KeyManager
和TrustManager
(并因此之间javax.net.ssl.keyStore
和javax.net.ssl.trustStore)
如下(从引JSSE REF指南):
TrustManager:确定是否应该信任远程身份验证凭据(以及连接)。
KeyManager:确定要发送到远程主机的身份验证凭据。
(其他参数可用,并且其默认值在JSSE参考指南中进行了描述。请注意,尽管信任存储有一个默认值,但密钥存储没有一个默认值。)
本质上,其中的密钥库javax.net.ssl.keyStore
旨在包含您的私钥和证书,而密钥库则包含javax.net.ssl.trustStore
当远程方出示证书时您愿意信任的CA证书。在某些情况下,它们可以是一个存储库,并且可以是同一存储库,尽管通常最好使用不同的存储库(尤其是基于文件的存储库)。
问题内容: 据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并代表你打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利。 不过,我很想了解使用keytool时如何/何时区分商店。 因此,到目前为止,我已经使用 这将创建我的keystore.ks文件。我回答yes了我是否信任bob的问题,但是我不清楚这是否创建了密钥库文件或信任库文件?
我只使用自签名证书进行测试。 问题: Q1.我想知道为什么我需要在步骤6中将服务器和客户端自己的证书添加到各自的信任库中。 2.创建x509证书 openssl req-x509-new-nodes-key diagserverca.key-sha256-days 1024-out diagserverca.pem 3.从私钥和公共证书创建PKCS12密钥存储库。 keytool-importke
当使用keytool生成keystore时,我收到错误非法选项:genkeypair。但是当我看到帮助时,genkeypair是可用的选项。我在指挥上做错了什么? C:\program files\java\jdk1.7.0_51\bin>keytool.exe-genkeypair-alias orbis-storetype pkcs12-keyalg rsa-keysize 2048-keys
我无法使用keytool(java 8)更改PKCS密钥库密码。当我试图更改密钥密码时: 这意味着无法更改PKCS12密钥库的密钥密码。然后我尝试更改keystore密码: 这意味着,我们必须一起更改密钥库密码和密钥密码。但是没有命令可以改变两者。我能做什么呢?
我在java中实现了一个加密和解密器,它可以在密钥存储库文件上工作。我的密钥库已经有两个RSA的别名,但现在我需要添加DES。 有办法通过keytool做到这一点吗?我找不到任何地方可以做这件事。