我想在Sping Boot 应用程序中使用RestTemplate进行以下curl调用:
curl -v --tlsv1.2 --cacert /etc/pki_service/ca/cacerts.pem --cert /etc/identity/client/certificates/client.pem -key /etc/identity/client/keys/client-key.pkcs8 https://server.com
我也遇到过类似的问题:Using RestTemplate to send authorization certificates和Java HTTPS client certificate authentication,但没有得到实现完全相同的事情的具体步骤。
有人能帮帮忙吗?谢谢。
1条答案
按热度按时间vq8itlhq1#
把你的client.pem和client-key. pkcs 8导入到一个java的密钥存储库中,比如
openssl
和javakeytool
,可以直接使用pem证书和pkcs 8密钥,但是在java系统属性中使用它们就困难多了。把你的pem样式的cacerts转换成一个名为cacerts. jks的jks。
允许您的服务器缓存信任服务器响应,如下所示:
在RestTemplate调用中添加客户端证书的包含:(假设您创建的jks和密码分别是“myKeystore.jks”和“changeit”)
仅强制TLSv1.2
您可能需要使用Java命令行选项
‑Djdk.tls.client.protocols="TLSv1.2"
执行前面的操作