Jef*_*eff 5 java ssl curl ssl-certificate rest-assured
在我的环境中,为了发出成功的 cURL 命令,我必须包含以下指向已下载文件的选项:
--key /path/to/client-private.key
--cert /path/to/client-cert.pem
--cacert /path/to/caroot.pem
Run Code Online (Sandbox Code Playgroud)
我无法找到有关如何通过利用这些文件的 restAssured java 库进行等效 REST 调用的信息。我相信我需要打电话,RestAssured.config().sslConfig(someConfig);但不知道如何建立someConfig。
我也有机会获得rootca.keystore和rootca.truststore是否有帮助。
任何帮助都会很棒!谢谢!
在 REST-assured 中,无法将密钥和证书文件直接作为参数。目前放心可以接受密钥和信任存储。因此,您必须首先创建它们并将密钥/证书放入其中,如下所示。
生成密钥库
openssl pkcs12 -export -inkey client-private.key -in client-cert.pem -out keystore.p12
Run Code Online (Sandbox Code Playgroud)
生成信任库
keytool -import -alias ca -file caroot.pem -keystore truststore.jks
Run Code Online (Sandbox Code Playgroud)
您的请求应如下所示:
openssl pkcs12 -export -inkey client-private.key -in client-cert.pem -out keystore.p12
Run Code Online (Sandbox Code Playgroud)
即使设置了allowAllHostnames(),也值得将主机证书导入信任库(否则您可能会得到InvalidCertificationPathException)。
你可以这样做:
openssl s_client -showcerts -connect YOUR_HOST:443 </dev/null > host_certificate.crt
Run Code Online (Sandbox Code Playgroud)
然后将 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 之间的行提取到一个新文件中,我们将其命名为 host_cert.crt。之后将此证书导入到现有的信任库中。
keytool -importcert -file host_cert.crt -keystore trustStore.jks -alias "hostCertificate"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |