我遇到了一个奇怪的问题(100%是服务器配置问题),例如我想从 Dropbox 下载一些东西:
正在解析 dl.dropboxusercontent.com... 23.23.160.146, 50.17.227.107, 54.221.248.69, ... 正在连接到 dl.dropboxusercontent.com|23.23.160.146|:443... 已连接。错误:无法验证由“/C=US/ST=CA/O=SonicWALL Inc./CN=SonicWALL Firewall DPI-SSL”颁发的 dl.dropboxusercontent.com 证书:遇到自签名证书。要以不安全的方式连接到 dl.dropboxusercontent.com,请使用“--no-check-certificate”。
是的,我知道我可以使用--non-check-certificate,但是当我想在 Java 应用程序中使用 SSL 连接时,我会遇到以下情况:
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径
该应用程序在其他服务器或本地机器上运行良好,有什么想法吗?
答案1
看起来您的 CentOS 计算机和 Dropbox 之间有一个 Sonicwall 防火墙。如果确实如此,并且您信任该防火墙,您可以选择使用 keytool 将 Sonicwall 的 CA 证书添加到 Java 的信任库中。
keytool -import -trustcacerts -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore $JAVA_HOME/jre/lib/security/cacerts
公然复制粘贴自: http://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html