这个错误通常表示Java应用程序无法验证服务器证书的合法性。以下是解决方案。
# 导出目标服务器的证书 keytool -printcert -rfc -sslserver example.com:443 > certificate.pem # 导入到Java信任库 keytool -importcert -alias example -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -file certificate.pem # 或导入到自定义信任库 keytool -importcert -alias example -keystore custom-truststore.jks -storepass yourpassword -file certificate.pem
java -Djavax.net.ssl.trustStore=/path/to/custom-truststore.jks -Djavax.net.ssl.trustStorePassword=yourpassword -jar your-app.jar
// 跳过SSL验证(不推荐生产环境)
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());<!-- 在pom.xml中添加 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine> -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password </argLine> </configuration> </plugin>
# 查看证书链 openssl s_client -connect example.com:443 -showcerts # 检查证书是否过期 openssl x509 -in certificate.pem -noout -dates
# 在Dockerfile中添加 COPY certificate.pem /usr/local/share/ca-certificates/ RUN update-ca-certificates # 设置Java信任库 ENV JAVA_TOOL_OPTIONS="-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts"
Spring Boot:
# application.yml server: ssl: trust-store: classpath:truststore.jks trust-store-password: password
Windows特定:
# 导入证书到Windows信任库 Import-Certificate -FilePath "certificate.cer" -CertStoreLocation Cert:LocalMachineRoot
保持信任库更新
# 更新Java CA证书 keytool -importkeystore -srckeystore cacerts -destkeystore cacerts.jks
使用证书管理工具
对于企业环境,考虑使用KeyStore Explorer
或使用证书管理服务
环境检查清单
证书是否过期
域名是否匹配
中间证书是否完整
是否使用自签名证书
注意: 跳过SSL验证会带来安全风险,仅应在开发和测试环境中使用。生产环境应始终正确配置证书信任链。





B2C电商系统商城源码支持pC+小程序+公众号+H5可打包App源...
原生开发淘宝客App,Android+ios独立开发,全开源支持二...
知识付费系统在线教育平台源码+题库系统源码,PC+公众号商业授权...
B2C单商户电商系统源码部署小程序+公众号+H5+App源码...
教育知识付费系统源码带题库功能商业授权公众号+H5源码...