gpt4 book ai didi

ssl - 在 Groovy 中,如何在建立 URL 连接时使用 ca.pem?

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:20 26 4
gpt4 key购买 nike

我有一个要发布到的网络服务。使用 curl 我可以这样做:

curl --cacert ~/ca.pem [...]

效果很好。

在 Groovy 中我这样做:

def post = new URL("$endpoint").openConnection()
post.setRequestMethod("POST")
post.setDoOutput(true)
post.setRequestProperty("Content-Type", "application/json")
post.setRequestProperty("Authorization", "Bearer $token")
post.getOutputStream().write(json.getBytes("UTF-8"))

最后一行失败:

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

是否有一种简单的方法来设置我的 ca 证书(这是一个用户可配置的路径)?这不涉及掏腰包?

我看到了这个答案:https://stackoverflow.com/a/48173910/675083但这与我相关吗?真的有那么复杂吗?

最佳答案

java 仅适用于 keystore 。

和你的 ca.pem 我猜是证书。

您必须将其放入位于此处的标准 java ca-store 中:

$JAVA_HOME/jre/lib/security/cacerts 

或者您可以使用 openssl 将您的证书转换为 pkcs12 keystore ,并在启动期间将其设置为 java 信任库:

java -Djavax.net.ssl.trustStore=path_to_pksc12 \
-Djavax.net.ssl.trustStorePassword=changeit \
-Djavax.net.ssl.trustStoreType=pksc12 \
...

但是如果你想动态地做它会像你发现的那样复杂

关于ssl - 在 Groovy 中,如何在建立 URL 连接时使用 ca.pem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55577492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com