java webservice 证书_java – webservice提供者和消费者之间的证书机制

看起来您正在使用X509证书调用HTTP连接受TLS / SSL保护的Web服务.这意味着服务器已经设置了具有这些证书的密钥库以及相应的私钥.当您调用Web服务时,服务器将从其密钥库中检索用于信任建立的证书(即,保护与Web服务的TLS连接)并将其发送到客户端.当客户端从服务器收到响应时,它将检查该证书的信任.现在我们有两种情况:

>如果服务器使用自签名证书(可用于开发和测试,但不用于生产),则客户端将不会将其识别为受信任,因为它未存储在客户端的信任库中.默认情况下,在Java环境中,在以下两个位置搜索信任库(按顺序):$JAVA_HOME / lib / security / jssecacerts和$JAVA_HOME / lib / security / cacerts.通过使用-Djavax.net.ssl.trustStore and -Djavax.net.ssl.trustStorePassword运行客户端或使用自定义TrustManager,也可以使用自定义信任库.因此,如果服务器自签名证书未存储在其中一个位置,则安全连接将失败.因此,客户端必须将证书导入其信任库.为了避免将自签名证书导入客户端的信任库,您可以按照here所述创建自定义X509TrustManager.

>如果服务器使用由其中一个已识别的根CA权限签名的证书,则它将自动验证,因为这些CA的证书已安装在Java的默认信任库中.因此,可信赖的TLS连接将成功.

在服务器不需要客户端身份验证的情况下,该过程结束(当您通过浏览器连接到大多数HTTPS网站时会发生这种情况).

如果服务器需要客户端身份验证,则客户端需要将其自己的证书从其密钥库提供给服务器,并且服务器需要将其安装在其信任库中. Web服务提供者必须向客户端提供客户端应使用的证书配置文件的规范.

Here您可以找到对密钥库和信任库术语的一个很好的说明.

所以你说你有一个由Web服务提供商提供的.p7b文件.从this页面引用:

PKCS#7/P7B Format

The PKCS#7 or P7B format is usually stored in Base64 ASCII format and has a file extention of .p7b or .p7c. P7B certificates contain “—–BEGIN PKCS7—–” and “—–END PKCS7—–” statements. A P7B file only contains certificates and chain certificates, not the private key. Several platforms support P7B files including Microsoft Windows and Java Tomcat.

因此,P7B文件包含服务器证书或证书链(更多信息在此here).

我相信你是在一个没有客户端认证的场景中.因此,您不需要自己的密钥库.您只需要将服务器的证书(P7B文件)导入到您正在使用的信任库中.您可以直接导入P7B文件而无需将其转换为CER格式:

keytool -import -trustcacerts -alias web_service -keystore my_truststore.jks -file web_service.p7b

如果你仍然需要CER格式的证书,你可以像这样从P7B转换为CER(回答你的第二个问题):

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

如果实际上需要客户端身份验证,那么您需要使用私钥和公共证书创建密钥库,并通过-Djavax.net.ssl.keyStore and -Djavax.net.ssl.keyStorePassword parameters或通过KeyManager将其提供给连接.之前解释的相同工作流现在适用于相反的方向.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值