相关疑难解决方法(0)

java SSL和cert密钥库

我的java程序如何知道包含证书的密钥库在哪里?或者,我如何告诉我的java程序在哪里查找密钥库?

以某种方式指定密钥库后,如何指定用于向客户端验证服务器的证书?

java keystore

156
推荐指数
5
解决办法
39万
查看次数

在代理后面使用Maven和SSL的问题

我刚刚下载了Maven,并试图运行"Maven in Five Minutes"页面(http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)上发现的简单命令.这是命令:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到SSL证书的错误,无法从https://repo.maven.apache.org/maven2的中央Maven存储库下载.错误是"SunCertPathBuilderException:无法找到请求目标的有效证书路径".

我坐在公司防火墙后面并正确配置了两者的代理设置httphttps通过该settings.xml文件进行访问.我怀疑所有下载Maven并且第一次运行它的人都必须导入Maven存储库的SSL证书,所以问题必须在于代理.有人对这个有经验么?

这是完全调试模式(-X)中的堆栈跟踪:

 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Run Code Online (Sandbox Code Playgroud)

Apache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T22:58:10 + 02:00)Maven home:C:\ Projects\maven\bin .. Java版本:1.7.0_45,供应商:Oracle Corporation Java home:C :\ Program Files\Java\jdk1.7.0_45\jre默认语言环境:it_IT,平台编码:Cp1252操作系统名称:"windows 7",版本:"6.1",arch:"amd64",系列:"windows"[DEBUG]使用连接器WagonRepositoryConnector优先级为0.0表示https://repo.maven.apache.org/maven2通过*****:8080表示用户名=*****,密码=***下载:https:// repo. maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom [警告]无法检索org.apache.maven.plugins的插件描述符: maven-clean-plugin:2.5:插件org.apache.maven.plugins:maven-clean-plugin:2.5或其中一个依赖项无法解析:无法读取org.apache.maven.plugins的工件描述符:maven- clean-plugin:jar:2.5 org.apache.maven.plugin.PluginResolutionException:插件org.apache.maven.pl ugins:maven-clean-plugin:2.5或其中一个依赖项无法解析:无法读取org.apache.maven.plugins的工件描述符:maven-clean-plugin:jar:2.5 org.apache.maven.plugin .internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122)在org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:148)在org.apache.maven.plugin.DefaultBuildPluginManager.loadPlugin(DefaultBuildPluginManager.java :81)在org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:138)在org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:121)在org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:85)在org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260)在组织 位于org.apache.maven.lifecycle.internal的org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:103)中的.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220) .DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:83)在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:85)在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)org.apache.maven.cli.MavenCli.execute(MavenCli.java:582)org.apache.maven.cli.MavenCli.doMain(MavenCli.的java:214)在org.apache.maven.cli.MavenCli.main(MavenCli.java:158)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingM ethodAccessorImpl.java:43)在org.codehaus.plexus的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的java.lang.reflect.Method.invoke(Method.java:606) .classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)引起:org.eclipse.aether.resolution.ArtifactDescriptorException:无法读取org.apache.maven.plugins的工件描述符:maven-clean-plugin:jar:2.5 atg.apache.maven. repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:349)位于org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor的org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:231) DefaultRepositorySystem.java:288)org.apache.maven.plugin.internal.DefaultPluginDep endenciesResolver.resolve(DefaultPluginDependenciesResolver.java:108)... 23更多引起:org.eclipse.aether.resolution.ArtifactResolutionException:无法传输工件org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central(https://repo.maven.apache.org/maven2):sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到要求的有效证书路径在org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459)处org.eclipse.aether org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)靶. org.eclipse.aether.transfer:internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239)在org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:334)...... 26多所致.ArtifactTransferExceptio n:无法传输工件org.apache.maven.plugins:maven-clean-plugin:pom:2.5 …

java ssl proxy maven

119
推荐指数
10
解决办法
22万
查看次数

java.security.InvalidAlgorithmParameterException:在Linux上,trustAnchors参数必须为非空,或者为什么默认的信任库为空

当你谷歌这个例外:java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty,会出现多个结果.然而,没有确定的解决方案,只有猜测.

当我尝试使用SSL打开连接时,问题出现了(至少在我的情况下).它在我的Windows机器上工作正常,但是当我将它部署到linux机器(安装了sun的jre)时,它会因上述异常而失败.

问题是JRE的默认信任库由于某种原因是空的(大小只有32字节,而在Windows上是80kb).

当我将我的jre/lib/security/cacerts文件从Windows 复制到linux时,它运行正常.

问题是 - 为什么linux jre有一个空的信任存储?

请注意,这种情况发生在使用AMI linux的Amazon EC2实例上,因此可能是由于一些亚马逊政策(我认为java已预先安装,但我不确定)

java security

74
推荐指数
8
解决办法
20万
查看次数

Jenkins为什么说"这个Jenkins实例似乎处于脱机状态"

我在Ubuntu上全新安装了Jenkins 2.32.2.在实例上打开浏览器并转到标题为" 脱机"的页面,并显示消息"此Jenkins实例似乎处于脱机状态",并提供"配置代理"或"跳过插件安装"选项

由于我刚刚使用互联网连接进行安装,因此机器显然不会脱机.我也有一个以前的安装,完全相同的方式,这是有效的.我删除了以前的安装,因为Pipelines不起作用,Google告诉我这是因为JDK 9.所以我删除了所有JDK/JRE安装以及jenkins,只安装了新的JDK 8,安装了Jenkins,并且到了这里.

詹金斯过去曾在这个盒子上工作过,所以它认为它离线了?

更新:找到一个日志文件/ var/lib/jenkins/logs/tasks /下载metadata.log并以一条消息开头致命:连接被拒绝(拒绝连接) 我认为这表明互联网连接正常,但还有别的阻止它获取数据?

更新:根据其他研究,我在插件管理器中检查了更新站点.这被列为http://updates.jenkins-ci.org/update-center.json,并且从命令行中该文件的wget成功.所以绝对不是连接问题.使用http和https,jenkins都不兼容.

offline jenkins

38
推荐指数
3
解决办法
3万
查看次数

java.security.InvalidAlgorithmParameterException:使用cas时,trustAnchors参数必须为非空

我们在使用cas的tomcat下的应用程序中得到以下异常.

java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

当我谷歌搜索它时,我发现了一些猜测和解决方案,但没有人可以帮助我.

这是我们的tomcat server.xml文件的一部分:

<Connector SSLEnabled="true" clientAuth="false" keystoreFile="conf/.keystore" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>
Run Code Online (Sandbox Code Playgroud)

我们指向我们生成的密钥库.

java ssl cas

14
推荐指数
1
解决办法
4万
查看次数

意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

枝,

我编写了一个连接到Salesforce并更新其中的值的java代码,当我从本地系统作为独立的Java应用程序运行它时,它运行良好,但我的主要目标是将其作为filenet BPM中java组件工作流,所以当工作流进程到达这个java组件时,它会抛出一个错误作为标题

整个堆栈堆栈跟踪如下

com.sforce.ws.ConnectionException: Failed to send request to https://login.salesforce.com/services/Soap/c/24.0/0DF90000000PX8r
    at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:129)
    at com.sforce.soap.enterprise.EnterpriseConnection.login(EnterpriseConnection.java:1052)
    at com.sforce.soap.enterprise.EnterpriseConnection.<init>(EnterpriseConnection.java:399)
    at salesforceupdate.SalesForceUpdate.main(SalesForceUpdate.java:70)
    at salesforceupdate.Callin.UpdateSL(Callin.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at filenet.vw.integrator.adaptors.java.VWJavaAdaptor.execute(VWJavaAdaptor.java:426)
    at filenet.vw.integrator.base.VWAdaptorEx$AdaptorAction.run(VWAdaptorEx.java:120)
    at java.security.AccessController.doPrivileged(AccessController.java:284)
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:727)
    at filenet.vw.integrator.base.VWAdaptorEx.run(VWAdaptorEx.java:360)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at com.ibm.jsse2.n.a(n.java:42)
    at com.ibm.jsse2.tc.a(tc.java:96)
    at com.ibm.jsse2.tc.a(tc.java:340)
    at com.ibm.jsse2.tc.a(tc.java:555)
    at com.ibm.jsse2.tc.a(tc.java:510)
    at com.ibm.jsse2.tc.startHandshake(tc.java:381)
    at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:151)
    at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:64)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1024) …
Run Code Online (Sandbox Code Playgroud)

java websphere salesforce

13
推荐指数
1
解决办法
2万
查看次数

javax.net.ssl.SSLException:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

我正在寻找解析每天更新所述文件的XML文件 - 我遇到的唯一问题是他们使用自己的证书(https:// ..)并且我不能使用该特定URL,也不能是否有http:// ...链接可用.

URL url = new URL("https://...");
...
Document document = db.parse(url.openStream());
Run Code Online (Sandbox Code Playgroud)

此代码在运行我的测试时抛出以下异常:

javax.net.ssl.SSLException:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

我已经看到了各种建议,涉及创建各种类来处理这种连接或个人服务器,以及将证书添加到密钥库,然后将该密钥库添加到Java项目,但我一直在无法做到这一点,我正在寻找一种稍微简单的方式让我去在线访问XML.

java ssl jsse truststore

11
推荐指数
2
解决办法
6万
查看次数

无法下载Eclipse插件

我正在尝试下载eclipse的kotlin插件。我可以连接到Eclipse电子市场,但是当我尝试下载它时,出现错误:

Unable to read repository at 
https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/last/content.xml.

sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

我在防火墙后面,并且代理设置已配置。我从该网站下载了证书并将其添加到keytool中,但错误仍然相同。如何解决此错误或手动安装此插件?

java eclipse kotlin

10
推荐指数
2
解决办法
2万
查看次数

Maven错误:(重复)java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

不得不再问一次.有人认为这是一个重复的问题,已经回答并从列表中删除.

我正在使用maven(mvn)批处理命令与windows(而不是m2e与eclipse)运行干净安装或解决依赖关系.有时,当更改pom.xml时,有必要从我们的nexus服务器下载工件.这对我来说已经很久了.

但是现在连接到nexus服务器(https,服务器使用公司拥有的证书)失败了" java.security.InvalidAlgorithmParameterException:trustAnchors参数必须是非空的 "我知道,我更改了Java版本.但我很确定我维护cacerts密钥库的方式与之前版本相同.(在租用时,我比较了两个cacerts中的指纹;它们是相同的).

运行命令" mvn -s -Djavax.net.debug = all -Djava.net.ssl.trustStore ="C:/Programme/Java/jre1.8.0_102/lib/security/cacerts"-Djavax.net.ssl .trustStorePassword = changeit dependency:resolve ",ssl-trace说:

keyStore is :    
keyStore type is : jks
keyStore provider is : 
init keystore
init keymanager of type SunX509
trustStore is: No File Available, using empty keystore.
trustStore type is : jks
trustStore provider is : 
init truststore
Run Code Online (Sandbox Code Playgroud)

即使在命令中指定密钥库的路径和密码,ssl跟踪中的答案也是找不到它.

我不知道我可能已经改变了什么来解决这个问题.我更改了Windows PATH-Statement,但这与前面描述的命令无关.任何提示都表示赞赏

java ssl keystore maven

7
推荐指数
4
解决办法
1万
查看次数

Maven:trustAnchors参数必须为非空且'parent.relativePath'@ InvalidAlgorithmParameterException @ Non-resolvable parent POM

我是Maven和Spring的新手.

该项目在我的本地测试环境中运行,但不在已部署的系统上运行.在已部署的系统上:我使用OpenSDK 10.0.1,Maven 3.5.2安装了全新的Ubuntu.我使用不同的防火墙并拥有不同的keyStore和trustStore.

Maven吐出:

组织的不可解析的父POM.[%mything%].app:useraut:0.0.1-SNAPSHOT:无法传输工件org.springframework.boot:spring-boot-starter-parent:pom:1.5.9.RELEASE from/to central(https://repo.maven.apache .org/maven2):java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空且'parent.relativePath'指向无本地POM @第14行,第10列 - > [帮助2]

pom snipet:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
Run Code Online (Sandbox Code Playgroud)

(没有代理定义)

我似乎可以找到解决方案的想法:错误 - trustAnchors参数必须是非空但我不知道从哪里开始配置Spring,Maven或trustStore

spring truststore maven parent-pom spring-boot

7
推荐指数
1
解决办法
5524
查看次数

调用WebService并出现SSL /证书问题

我将首先介绍一下我在Java中设置密钥库等方面的知识并不多

我正在尝试调用SOAP Web服务,我得到了wsdl,生成了代码等等.在我部署它并尝试触发WS调用之前,一切似乎都没问题.

这是我的设置:

  • Tomcat 7.0.35
  • Java,jdk 1.6.0_39
  • pfx文件和密码
  • 项目作为标准Web应用程序(战争)部署到tomcat

当我运行代码时,我得到以下异常:

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://tallyservices-qa.olson.com/tallyDemo2WebServices/tallyDemo2/sms: Received fatal alert: certificate_unknown
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1336)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1320)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    ... 27 more
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1837)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1019)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:170)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1280)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1231)
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:183) …
Run Code Online (Sandbox Code Playgroud)

java tomcat soap

6
推荐指数
2
解决办法
3万
查看次数

在Ubuntu 18.04上安装sbt时出错:gpg:密钥服务器接收失败:参数无效

我正在遵循sbt官方安装说明

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
Executing: /tmp/apt-key-gpghome.uRI0yiusG0/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
gpg: keyserver receive failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)

编辑:

我试过挖掘执行的gpg.1.sh脚本。这是对gpg的最终调用。

$ sudo cat /tmp/apt-key-gpghome.IRnmlx6hfX/gpg.0.sh
#!/bin/sh
exec 'gpg' --ignore-time-conflict --no-options --no-default-keyring \
--homedir '/tmp/apt-key-gpghome.IRnmlx6hfX' --no-auto-check-trustdb --trust-model always "$@"
Run Code Online (Sandbox Code Playgroud)

编辑2:

我试图直接从密钥服务器中查询密钥,但是没有运气。参见http://keyserver.ubuntu.com/pks/lookup?search=2EE0EA64E40A89B84B2DF73499E82A75642AC823&op=vindex。钥匙可能丢失了吗?

编辑3:

我在2月24日再次尝试,现在可以使用了!

scala build sbt server

4
推荐指数
1
解决办法
3365
查看次数