java - 无法构建 CAS 服务器

标签 java ssl gradle build cas

我正在尝试连接 JASIG 的 CAS 服务器。我已经成功生成了 Tomcat 的 key (它是 8.5),将 key 导入到 Java keystore ,现在尝试使用内置构建脚本 dev-build-no 构建我从 GitHub 下载的 CAS 项目-tests.sh。由于运行构建脚本时抛出的异常,我无法完成这一步。

Downloading https://services.gradle.org/distributions/gradle-2.10-bin.zip

Exception in thread "main" 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
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:961)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
    at org.gradle.wrapper.Download.download(Download.java:44)
    at org.gradle.wrapper.Install$1.call(Install.java:61)
    at org.gradle.wrapper.Install$1.call(Install.java:48)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
    at org.gradle.wrapper.Install.createDist(Install.java:48)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
    at sun.security.validator.Validator.validate(Validator.java:260)
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
    ... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
    ... 26 more

这是怎么回事?我究竟做错了什么?我试图在某处找到线索,但到目前为止没有用。 据我了解,这似乎是尝试下载此 gradle 版本时出现的问题。我不明白的是为什么会发生这种情况以及如何解决这个问题。

最佳答案

您尝试下载的域不在受信任的列表中

您可以尝试 2 个选项之一,

  1. 尝试使用 http URL 而不是 https url
  2. 您可以通过从以下位置下载证书来解决这个问题 services.gradle.org(.cer 文件),然后将它们安装到您的 Java 信任库。确保下载任何父证书 这个域可能也有并安装它们。一旦你这样做,你 应该能够继续前进。

关于java - 无法构建 CAS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45096750/

相关文章:

php - 用户何时发送 cookie?

java - Gradle 和 Lwjgl 3 Native

Java Servlet 扩展另一个 Servlet

java - 每个文件的增量

java - 删除 oneToOne 后 Spring Hibernate TransientPropertyValueException

android - Gradle 无法解决本地 aar 依赖

android - Appdynamics 实现

Java SQL 只显示正确的记录

node.js - HTTPS 客户端证书错误 ERR_SSL_SERVER_CERT_BAD_FORMAT

java - 如何从 servlet 验证连接是使用双向 SSL 建立的?