我已获得证书并要求使用它通过我的应用程序进行 http 调用(我使用的是基于 Java 的 Mule)。
我获得的证书是一个 .cer 文件。这是我公司特有的证书,我认为这意味着它具有该服务器的公钥。
给我 CER 文件的公司给了我一个密码。例如abc1234
为了使用它,我首先运行如下所示的命令...
keytool -importcert -file myCert.cer -keystore keystore.ks -alias 1
然后我将它插入到我的代码中,如下所示......
<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="hostname.com" port="443" doc:name="HTTP Request Configuration">
<tls:context>
<tls:key-store type="jks" path="keystore.ks" alias="1" keyPassword="changeit" password="changeit"/>
</tls:context>
</http:request-config>
当我在我的应用程序中调用该端点时,我收到“错误 403:缺少身份验证”。
在整个过程中,我从来不需要在任何地方输入密码“abc1234”,我想这就是我收到 403 的原因。需要在哪里提供该密码?
谢谢
最佳答案
感谢大家的反馈。这里的所有答案和评论肯定对我有帮助。
最后我发现证书没有密码(如评论中所述)并且列出的密码不相关。
我最终发现 403 是由 SSL 握手错误引起的,它没有找到 CA 证书。
我只能通过打开 SSL 握手日志才能找到答案。
关于java - Java keystore 的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47748774/