Java gradlew包装似乎是';忽略';我的信任证书
当尝试使用自签名证书连接到指定的SSL服务器时,我知道我需要告诉Java这是一个受信任的主机 我已将证书导入密钥库并运行以下操作:Java gradlew包装似乎是';忽略';我的信任证书,java,ssl,gradle,gradlew,Java,Ssl,Gradle,Gradlew,当尝试使用自签名证书连接到指定的SSL服务器时,我知道我需要告诉Java这是一个受信任的主机 我已将证书导入密钥库并运行以下操作: $JAVA_HOME/bin/java -Djavax.net.ssl.trustStore=my.jks SSLPoke my-host 443 哪张照片 Successfully connected 其中SSLPoke为: 这样就可以建立连接了 但是,当使用相同的JKS文件在同一台主机上运行时,唯一的区别是我使用/gradlew执行任务时,我会遇到一个异常
$JAVA_HOME/bin/java -Djavax.net.ssl.trustStore=my.jks SSLPoke my-host 443
哪张照片
Successfully connected
其中SSLPoke为:
这样就可以建立连接了
但是,当使用相同的JKS文件在同一台主机上运行时,唯一的区别是我使用/gradlew
执行任务时,我会遇到一个异常
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:145)
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)
... 58 more
我尝试过执行gradlew任务,比如:
./gradlew -Djavax.net.ssl.trustStore=my.jks myTask
GRADLE_OPTS=-Djavax.net.ssl.trustStore=my.jks ./gradlew myTask
export GRADLE_OPTS=-Djavax.net.ssl.trustStore=my.jks
./gradlew myTask
所有这些都会产生上述相同的异常。使用此属性的“correct
”方法是什么,以便myTask
可以完成