如何将 Let's Encrypt 添加到 Java 允许的证书中?

Hay*_*Hay 4 java windows-7 certificate

我最近为我的几个域名切换到 Let's Encrypt Private Beta,结果我的几个 Java 程序停止工作,因为我认为证书不在信任存储区中。

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

我尝试过各种操作,例如进入 Windows 的 Java 配置面板,或将根证书添加到 cacerts。

我们如何从 Let's Encrypt 根 CA 导出/下载 .csr 或 .p12 文件,以便将其导入到 Java 证书列表中,最好采用接受所有 Let's Encrypt 安全域(而不仅仅是我的域)的方式?


我尝试在https://letsencrypt.org/certificates/下载根证书并将其添加到列表中,但无济于事。我也尝试过添加/etc/letsencrypt/live/<my_website>/cert.pem到网站,但没有成功。我什至尝试使用 keytool 将其添加到 cacerts 中: https: //stackoverflow.com/questions/2138940/import-pem-into-java-key-store无论我尝试什么,它都不起作用(出现与上面相同的错误)。

在我所做的谷歌搜索中,我还发现了这一点:https: //community.letsencrypt.org/t/will-the-cross-root-cover-trust-by-the-default-list-in-the -jdk-jre/134/13但无法利用其中的信息。

小智 5

下载https://letsencrypt.org/certificates/上的所有证书(选择der格式)并使用这种命令将它们一一添加(例如letsencryptauthorityx1.der):

keytool -import -keystore PATH_TO_JDK\jre\lib\security\cacerts -storepass changeit -noprompt -trustcacerts -alias letsencryptauthorityx1 -file PATH_TO_DOWNLOADS\letsencryptauthorityx1.der
Run Code Online (Sandbox Code Playgroud)