美文网首页
springboot cli启动简单项目时证书报错

springboot cli启动简单项目时证书报错

作者: 火兰人一个 | 来源:发表于2019-10-11 10:11 被阅读0次

    仿照https://docs.spring.io/spring-boot/docs/2.2.0.BUILD-SNAPSHOT/reference/html/getting-started.html#getting-started网址里的例子进行启动时,

    执行spring run app.groovy,报错,错误信息如下

    错误信息:

    Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.springframework.boot:spring-boot-starter-web:pom:2.1.9.RELEASE from/to central (https://repo.maven.apache.org/maven2/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:422)

    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:224)

    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:201)

    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:261)

    ... 34 more

    Caused by: 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:1506)

    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)

    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)

    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)

    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 org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:570)

    at org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:450)

    at org.apache.http.impl.conn.DefaultClientConnectionOperator.updateSecureConnection(DefaultClientConnectionOperator.java:220)

    at org.apache.http.impl.conn.ManagedClientConnectionImpl.layerProtocol(ManagedClientConnectionImpl.java:419)

    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:808)

    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:609)

    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:440)

    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)

    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)

    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)

    at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:164)

    at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:296)

    at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:252)

    at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:67)

    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:453)

    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:360)

    ... 42 more

    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:1488)

    ... 65 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:146)

    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)

    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)

    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)

    ... 71 more

    分析可得知,由于去https://repo.maven.apache.org/maven2/下载包的时候,没有证书权限。

    解决办法:

    1、访问该网站:https://repo.maven.apache.org/maven2/,证书下载成功后

    2、到达java路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/security

    3、执行命令:sudo keytool -import -file ~/Documents/repo.maven.apache.org.cer-keystore cacerts -alias server

        密钥库口令默认为:changeit

    4、执行成功后,再次执行命令。启动成功

    相关文章

      网友评论

          本文标题:springboot cli启动简单项目时证书报错

          本文链接:https://www.haomeiwen.com/subject/hpqtmctx.html