我必须访问端口443上托管的Web服务。服务提供商已与我们共享了三个证书。
我必须通过为SSL通信创建表单链将它们添加到密钥库中。我遵循以下步骤。
keytool -keystore npci_keystore_test.jks -genkey -alias npci_client_testore
Result :- keystore npci_keystore_test.jks created.
keytool -import -keystore npci_keystore_test.jks -file CA_Certificate.cer -alias theCARoot
Result :- certificate CA_Certificate.cer is added to keystore.
keytool -import -keystore npci_keystore_test.jks -file CCA_Certificate.cer -alias theCCARoot
Result :- certificate CCA_Certificate.cer is added to keystore.
keytool -import -keystore npci_keystore_test.jks -file ABCD.cer -alias npci_client_testore
在步骤4中,我有以下异常
输入密钥库密码:(并且当我输入密码时,我有以下异常)
keytool错误:java.lang.Exception:答复和密钥库中的公钥不匹配
我已经在SO中进行搜索了,但是到目前为止还没有运气。
我正在按照下面的源代码创建存储并在其中导入证书。
JKS密钥库
编辑: - -
我已经通过更改证书的导入顺序对其进行了测试,但到目前为止还没有运气。
您问题中的链接说明了如何为服务器创建SSL密钥库,这不是您想要的。您所做的是:
步骤4失败,因为SSL证书是为完全不同的密钥对生成的。
这三个证书可能是:
现在,您要做的是将信任锚添加到信任库中(默认情况下:)${JAVA_HOME}/jre/lib/security/cacerts
,结果您的客户端将接受Web服务的SSL证书。
通常,SSL服务器在SSL握手期间将根证书以外的整个链发送到客户端。这意味着您必须将根证书添加到您的信任库中:
keytool -import -keystore ${JAVA_HOME}/jre/lib/security/cacerts -file CCA_Certificate.cer -alias theCCARoot
如果Web服务需要SSL客户端身份验证,则需要采取其他步骤,但是您从未提到过客户端身份验证,因此我认为这不是必需的。
我用过这个命令 生成密钥库。它工作正常,但从我读到的内容来看,这个命令还应该提示您输入密钥密码(而不是存储密码)?我从来没有收到过这样的提示。我能跑 查看密钥库的内容。钥匙似乎就在那里。。。正确的别名在那里。在哪里获取/设置特定别名的密码? 我有一个key.properties在Android目录 在build.gradle我有: 当我试图生成一个发布版本时,我得到了 我想它可能与keyPassw
我创建了一个密钥库,它包括私钥和公钥。我需要使用java代码检索我的公钥和私钥。我在这里找到了一个检索私钥的方法。但我找不到检索公钥的方法。有人能告诉我一种取出公钥的方法吗
我们需要使用Azure key vault创建RSA密钥对,并将RSA公钥复制到外部系统。其要求是外部系统使用公钥加密数据,内部系统与azure key vault对话并对数据进行解密。我还没有访问Azure key vault的权限,所以需要查看文档。我有两个基本问题: > 有没有一种方法可以使用Azure portal以文本格式导出RSA公钥,而不使用API(https://docs.micr
我看到钥匙和mModulas是相等的,有人知道吗?
2)生成CA证书请求 3)生成自签有效期-10年 4)使用KeyStoreExplorer这样的程序将密钥对(私钥和自签名证书)导入到新的JKS中
我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key