gpt4 book ai didi

java - 在aws中导入外部证书

转载 作者:行者123 更新时间:2023-11-30 07:51:23 34 4
gpt4 key购买 nike

尝试从 aws lambda 连接到外部 soap 服务,但遇到异常。

com.sun.xml.internal.ws.client.ClientTransportException:HTTP 传输错误:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider .certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

尝试从本地环境调用服务时,我遇到了同样的异常。使用keytool命令导入jre/lib/security文件夹下的安全证书后解决。

如何在AWS中导入外部安全证书解决异常。

我已经完成了以下 link .

注意::我有来自浏览器的证书,但我没有私钥。

最佳答案

我是这样解决的:

        //locate the default truststore
String filename = System.getProperty("java.home") + "/lib/security/cacerts".replace('/', File.separatorChar);

KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());

try (FileInputStream fis = new FileInputStream(filename)) {

keystore.load(fis, "changeit".toCharArray());
}

CertificateFactory cf = CertificateFactory.getInstance("X.509");

//Input stream to cert file
Certificate caCert = cf.generateCertificate(IOUtils.toInputStream(CA_CERT));
keystore.setCertificateEntry("ca-cert", caCert);

//can only save to /tmp from a lambda
String certPath = "/tmp/CustomTruststore";

try (FileOutputStream out = new FileOutputStream(certPath)) {

keystore.store(out, "MyPass".toCharArray());
}

System.setProperty("javax.net.ssl.trustStore", certPath);
System.setProperty("javax.net.ssl.trustStorePassword","MyPass");

关于java - 在aws中导入外部证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175713/

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