当前位置: 首页 > 知识库问答 >
问题:

如何正确地将自签名证书导入到默认情况下所有Java应用程序都可用的Java密钥库中?

刘弘新
2023-03-14
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
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

共有1个答案

束飞捷
2023-03-14

在Windows上,最简单的方法是使用Portecle程序。

  1. 下载并安装portecle。
  2. 首先要100%确定您知道正在使用哪个JRE或JDK来运行您的程序。在64位Windows7上可能有相当多的JRE。Process Explorer可以帮助您实现这一点,或者您可以使用:system.out.println(System.getProperty(“java.home”));
  3. 将文件java_home\lib\security\cacerts复制到另一个文件夹。
  4. 在Portecle中单击“文件”>“打开密钥存储文件”
  5. 选择cacerts文件
  6. 输入此密码:changeit
  7. 单击“工具”>“导入受信任的证书”
  8. 浏览文件mycertificate.pem
  9. 单击“导入”
  10. 单击“确定”获取有关信任路径的警告。
  11. 当它显示有关证书的详细信息时,单击“确定”。
  12. 单击“是”接受证书为受信任。
  13. 当它要求别名时,单击“确定”,当它表示已导入证书时,再次单击“确定”。
  14. 单击“保存”。不要忘记这一点,否则更改将被丢弃。
  15. 将文件cacerts复制回找到它的地方。

在Linux上:

$ echo -n | openssl s_client -connect www.example.com:443 | \
   sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt
$ openssl x509 -in /tmp/examplecert.crt -text
$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
   -storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt
 类似资料:
  • 问题内容: 我确实想将自签名证书导入Java,因此任何尝试建立SSL连接的Java应用程序都将信任此证书。 到目前为止,我设法将其导入 不过,当我尝试运行时,仍然会得到: 问题答案: 在Windows上,最简单的方法是使用程序portecle。 下载并安装portecle。 首先,请确保100%确保知道使用哪个JRE或JDK来运行程序。在64位Windows 7上,可能会有很多JRE。Proces

  • 问题内容: 在Java Web服务客户端的开发过程中,我遇到了一个问题。Web服务的身份验证使用客户端证书,用户名和密码。我从Web服务背后的公司那里收到的客户证书采用格式。当我使用文本编辑器检查文件时,它具有以下内容: 我可以在Internet Explorer中将该文件作为证书导入(无需输入密码!),并使用它通过Web服务进行身份验证。 通过首先剥离第一行和最后一行,转换为换行符并运行base

  • 我做了一些调查,得到了奇怪的结果。我的班级: java: 所有的包层都是简单的,以供测试。例如: 组织导入之前的Eclipse: 组织导入后的Eclipse: 组织导入前的NetBeans:

  • 我试图让一个运行在Tomcat 6之上的应用程序通过SSL连接到LDAP服务器。 我使用以下方法将服务器的证书导入密钥库: 当我用SSL调试打开启动Tomcat时,根据日志Tomcat正在使用正确的证书文件: 但是,Tomcat没有添加我刚刚导入的证书——cacerts文件中的所有其他证书都会打印到日志中——并且连接失败: 重启Tomcat没有帮助。我已经用keyool-list命令验证了新的证书

  • 问题内容: 我使用以下步骤创建了一个带有一对私钥/公钥的新Java密钥库,供具有TLS的Java(内部)服务器使用。请注意,证书是自签名的: 1)使用AES256生成密钥 2)生成CA的证书请求 3)生成自签名有效期10年 4)使用KeyStoreExplorer之类的程序将对(私钥和自签名证书)导入新的JKS中 这可行,但是我想在不使用GUI的情况下实现最后一步。 我知道如何仅导入自签名证书:

  • 我只使用自签名证书进行测试。 问题: Q1.我想知道为什么我需要在步骤6中将服务器和客户端自己的证书添加到各自的信任库中。 2.创建x509证书 openssl req-x509-new-nodes-key diagserverca.key-sha256-days 1024-out diagserverca.pem 3.从私钥和公共证书创建PKCS12密钥存储库。 keytool-importke