首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -证书授权

Java -证书授权
EN

Stack Overflow用户
提问于 2016-03-31 15:30:01
回答 2查看 360关注 0票数 1

我的java应用程序中的证书出现了问题,这是我自己无法解决的。

我有:

  1. 私钥: priv.key
  2. 公共证书: pub.crt
  3. ALPHA_CA_root.pem -允许通过https进行通信的证书。

当我像这样使用卷发时,它会起作用:

代码语言:javascript
复制
curl -v https://server.com --cert pub.crt --key priv.key --cacert ALPHA_CA_root.pem -H "Content-Type: application/json" -X POST -d '{"json", "jsonContent"}'

但是当导入keystore时,我会收到错误,并且没有建立通信。我将按以下方式导入证书:

代码语言:javascript
复制
openssl pkcs12 -export -in pub.crt -inkey priv.key -out client.p12 -name "sc"
keytool -importkeystore -srckeystore client.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -deststorepass password
keytool -import -alias gridserverSSL -file ../ALPHA_CA_root.pem -storepass password-keystore keystore.jks

之后,我在应用程序中设置了java参数:

代码语言:javascript
复制
-Djavax.net.debug=ssl -Djavax.net.ssl.keyStoreType=jks -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=password

应用程序使用Apache httpClient与服务器建立通信。在我的错误日志中,我看到了这样的情况:

代码语言:javascript
复制
cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

有人能帮忙吗?我会很感激的。

EN

回答 2

Stack Overflow用户

发布于 2016-03-31 22:51:20

如果步骤(3)处的证书是签名链的一部分(不清楚),则需要将它们与在(2)处的证书组合在一起,并在同一别名下同时导入所有证书以及私钥。

如果它们是用于验证对等证书的可信CA条目,则它们应该位于信任存储库中,而不是私钥所在的密钥存储库中,并且应该使用keytool -trustcacerts导入它们。

票数 0
EN

Stack Overflow用户

发布于 2016-04-01 16:30:17

好吧,我设法解决了这个问题。我不得不在这里添加啤酒证书:https://support.globalsign.com/customer/portal/articles/1223298-alphassl-intermediate-certificates

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36337683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档