问题标签 [pkix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8077 浏览

java - 将 certificate.pfx 导入到 cacerts 中,但仍然出现“PKIX ...无法找到请求目标的有效证书路径”错误。做什么?

我写了一个 web 服务客户端,现在无法让它通过 https 运行。虽然我将 cert.pfx(alias=cert) 导入 javas cacerts 并成功添加了一个带有 certs 别名的条目。

我仍然不能在 wsdl url 上使用 wsimport 提示。它说:PKIX 路径构建失败,无法找到请求目标的有效证书路径。哦,那好吧。所以我进行了一些研究并尝试将其设置为

没有成功。

我还尝试从 cert.pfx 文件中导出证书,然后通过 keytool -exportcert 和 keytool -importcert 将证书导入 cacerts。后来我尝试从我的浏览器导出证书(因为我的浏览器处理证书很好并且可以访问 https url)。我将根证书导出到 root.cer 文件中,然后将此 .cer 导入到我的 cacerts 中(我必须使用与 cert 不同的别名。使用 cert 作为别名时,我在使用 keytool 时在控制台中收到“密钥不匹配”消息迅速的)。

cacerts 上的转储表明 cacerts 中确实有一个条目。我不明白为什么 java 拒绝在 url 上执行 wsimport。

最后,我只是将 url 目标下载到我的机器上,并对下载的 .xml 文件进行了 wsimport,然后更改了生成的存根中的 url 参数。但是没有帮助,因为当我运行应用程序时,我遇到了“PKIX ...无法找到请求目标的有效证书路径”错误。

0 投票
2 回答
3120 浏览

java - 连接到 URL 时出错 - PKIX 路径构建失败

我正在尝试连接到网页以收集信息,并且我正在使用 jsoup 来解析 HTML。但是,每当我尝试连接到 URL 以下载源代码时,都会收到一条错误消息,说明有关 PKIX 构建路径的信息。我环顾四周,发现的所有内容都说要将网站的 CA Root 证书添加到我的信任库中,我这样做了,但问题仍然存在(CA Root 证书已经存在)。我可以通过网络浏览器连接到网站,但不能通过 URL 类。这是我可以编写的最基本的代码,它会产生错误。

这是错误

来自 chrome 的有关网站证书的信息

来自 chrome 的有关网站证书的信息

任何帮助,将不胜感激。这不是一个关键应用程序,因此安全性并不是那么重要,但如果我能保持安全性,我宁愿这样做。无论如何,我想做的就是通过代码下载该网站的 HTML。

谢谢你。

0 投票
1 回答
485 浏览

java - javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX 路径构建失败发生在一台机器上,但不在另一台机器上

我有 2 台新机器,安装了相同版本的 JDK7。

在其中一台机器上,我可以通过 HTTPS 从我的 Java 应用程序成功连接到远程主机,没有任何问题,也无需将任何证书导入默认的“cacerts”密钥库。

但是在另一台机器上我得到了 subj 错误。

两台机器上的 JDK 完全相同。机器之间的唯一区别是其中一台位于欧洲,一台位于美国(这是我遇到错误的地方)。

有没有人知道在我的情况下可能导致此错误的原因是什么?

更新

我尝试连接的主机证书由 QuoVadis CA 颁发,默认情况下,它在 Java 分发的 cacerts 中具有适当的记录。

更新2

看起来有问题的机器由于某种原因没有从它尝试连接的机器接收到整个证书链(我只能看到链中的最后一个证书,紧随其后的是一条消息 certificate_unknown)。所以它没有获得根证书。

除此之外,我在日志中看到的唯一区别是工作机器使用 TLS_RSA_WITH_AES_128_CBC_SHA 密码套件,而不工作机器使用 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 密码套件。这可能是我的问题的原因吗?(我也无法理解为什么他们使用不同的密码套件,而 JDK 相同并且它们连接到同一台机器)

0 投票
1 回答
2637 浏览

java - SSLHandshakeException - PKIX 路径构建失败

我正在尝试通过以下代码连接到服务器

我得到以下异常:

我尝试通过以下方式在 JDK 中安装其他服务器的证书:在 youtube 上关注此视频

openssl s_client -connect 1.2.3.4:8443

然后复制证书并粘贴到名为 client.pem 的文件中。之后,我去了 Java_home/bin 并运行了以下命令:

./keystore -keystore clientcert - importcert -alias demo -file /home/test/client.pem

输入密钥库密码并收到“证书已添加到密钥库”的消息

最后,当我尝试运行以下内容时:

java -Djavax.net.ssl.trustStore=clientcert -Djavax.net.ssl.trustStorePassword=123456 客户端

然后我收到消息:

错误:无法找到或加载主类客户端

你能告诉我我在这里做错了什么吗?

0 投票
2 回答
1004 浏览

ssl - openssl 生成有效证书

我使用他们提供的文档使用 openssl 生成了一个 ssl 证书。我已经一步一步完美地遵循了。但是,证书显示它是无效证书,并且在 https 上显示红线交叉。我对此进行了进一步的研发,我知道我生成的证书在开发时将有利于本地测试目的,当我们去发布我们的网站时,我们应该从有效的域名卖家那里购买证书(例如:老爹)。我的问题是我们是否可以使用 openssl 生成有效的 ssl 证书,以便我们可以将我已经存在的网站的 http 更改为 https。谁能解决我的问题。

0 投票
1 回答
71 浏览

certificate - 您如何为 BouncyCastle 的 X509v3CertificateBuilder 创建一个空主题?

我们正在从使用 X509V3CertificateGenerator 切换到新的 X509v3CertificateBuilder 类。它坚持为主题提供一个 X500Name 对象,如果它为空则抛出 NPE。在我们的例子中,我们想要一个空主题,并将使用 SubjectAlternativeName(标记为关键)作为规范允许的替代方案。

我们如何创建一个空的 X500Name 对象来传递给构建器的构造函数?

0 投票
1 回答
834 浏览

eclipse - Gradle 导入 Sun 安全异常

sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

在 Eclipse Mars 中导入 Gradle 项目时出现异常,它表明 Java 的 Cacerts 文件中要添加的证书很少。我已经使用密钥工具添加了证书。证书也添加到 Cacerts 文件中。但再次得到相同的 SSL 错误。也尝试运行 Cmd 提示。没用。我无法尝试的一件事是更改 Cacerts 文件的访问权限。

0 投票
3 回答
47956 浏览

java - Eclipse 中的 PKIX 路径构建失败

我正在使用 Liferay,我正在使用 eclipse,并使用加密套接字 (SSL) 运行客户端/服务器模型。

目前,当我以批处理模式运行应用程序时,我的应用程序正在运行客户端/服务器连接,但是当我尝试在 Eclipse 中启动服务器时,应用程序给了我错误

我已经使用 InstallCert.java 并将 jssecacerts 复制到

%JAVA_HOME%/jdk_version/jre/lib/security

但仍然给我错误。我还检查了证书(keytool -v -list)并在受信任的根 CA 中手动安装。可能是什么问题?谢谢!

0 投票
1 回答
899 浏览

node.js - 在 Node.JS 应用程序中执行服务器端 HTTPS 请求时出现“CERT_UNTRUSTED”错误?

我的 Node.JS/Express 应用程序在尝试从我的服务器代码向另一台服务器(不同公司,服务器不属于我们)提供的 API 发出 HTTPS GET 请求时收到以下错误:

注意:我正在使用“localhost”域从我的 Linux 机器运行这些测试。

我尝试了本文中概述的步骤来创建自签名临时证书,只是为了解决这个问题:

http://www.hacksparrow.com/node-js-https-ssl-certificate.html

但是,我仍然收到错误消息。(旁注:由于我创建了使用 HTTPS 模块加载的 SSL 密钥的服务器,因此服务器现在只响应 HTTPS (https://) URL 请求。自从我配置它以来,服务器不再响应非 HTTPS 请求在创建服务器时加载我的 SSL PEM 文件。奇怪的是,当它只打印一个时,它会打印两个“在端口上侦听服务器”提示)。

我怎样才能解决这个问题?

注意:下面代码中选项对象中的主机名属性已更改为“虚拟”URL,因为它是机密的。如果您尝试该 URL,您将收到错误消息。

代码摘录:

我尝试按照本文档安装ssl-root-cas NPM 包:

https://github.com/coolaj86/node-ssl-root-cas

但是我无法弄清楚我需要在说明中的 USAGE 部分下加载哪些 PEM 文件,这些文件显示了虚拟文件名,所以我认为我没有正确使用它。

这是我的应用程序包列表:

0 投票
0 回答
350 浏览

ssl - Openssl 客户端证书

我正在尝试使用自签名证书创建一个基本的 SSL 套接字。我在OpenSSL关注 Ubuntu 的指南。我有一个工作server_crt.pemserver_key.pem. 当我将它server_crt.pem放在我的客户端(以及将它放在我的服务器中)时,SSL 套接字就可以工作了。

但是我知道客户端应该有自己的证书并且没有服务器的副本。我一直在寻找重复项,但没有找到任何直接的答案......

如何创建链接到我的自签名 CA 文件的客户端证书?