如何将 java 创建的 SSL 证书导入到 Eclipse 中的项目中?
8 回答
可能您想在 JRE 的 trustcacerts 中导入“假” SSL 证书以避免无效证书问题。不是吗?
正如乔恩所说,您可以使用keytool完成这项工作:
keytool
-import
-alias <provide_an_alias>
-file <certificate_file>
-keystore <your_path_to_jre>/lib/security/cacerts
询问时使用“changeit”作为默认密码(感谢 Brian Clozel)。确保在您的服务器上使用此运行时或启动配置。
如果您的 Windows 证书存储中已经有证书(这在使用 MITM 证书的公司部署中很常见),您还可以使用以下步骤(在另一个 Stackoverflow 答案的帮助下,提供更详细的解释):
eclipse.ini
在 Eclipse 安装中找到该文件并打开它在该行下方
-vmargs
,添加以下行,然后保存文件:
-Djavax.net.ssl.trustStore=NUL
-Djavax.net.ssl.trustStoreType=Windows-ROOT
- 重启日食。
有一个更好的工具来完成这项工作。
当您运行(在 Windows 中以管理员身份运行以保存对系统的更改,在 linux 中使用 sudo 等)应用程序(它具有 win/mac/linux 的安装程序)时,有一个内置功能可以编辑系统的 cacerts 文件:
文件 -> 特殊打开 -> 打开 CA 证书
您已经拥有证书文件,您可以访问:
工具 -> 导入可信证书
或者您需要从服务器下载证书;去:
检查 -> 检查 SSL
从那里输入主机名,然后单击确定。它将弹出一个显示证书详细信息的窗口。在该窗口的底部有一个“导入”按钮,可让您直接将其导入 cacerts。
确保保存并关闭 cacerts,然后重新启动 eclipse/应用程序以使设置生效。
我们需要导入证书意味着我们需要使用:
keytool
-importcert
-file <certificate_location>
-keystore <jre_location\lib\security\cacerts>
-alias "<cert_name>"
它会要求输入密码。输入密码为changeit
Type Password : changeit
最后它会询问需要添加 {yes/no} :
输入是。
注意:不要在位置路径中给出空格
如果您有默认的 Java 设置并提供了 Java 类路径,那么您必须使用 Java 信任库来获取 SSL 证书。
为此,您可以按照以下步骤将证书导入信任库:
- 导航到 Java 设置的 JRE\bin 文件夹 理想情况下,路径应该是:
用户\Java\jre1.8.0_221\bin
- 您将能够在 bin 文件夹中找到 Keytool(将用于运行命令):
- 现在,一旦您在此路径上,请在 CMD 提示符下打开该路径:
- 现在您将能够在以下路径中找到 Java 的默认信任库:路径-
用户\Java\jre1.8.0_221\bin
现在您可以运行以下命令来查看此信任存储的内容:
keytool -list -v -keystore "C:\Program Files\Java\jre1.8.0_221\lib\security\cacerts"
注意:如果您的信任存储路径中有空格,那么您需要在路径中使用双引号。否则,您可以提供如下路径:
keytool -list -v -keystore C:\Temp\Java\jre1.8.0_221\lib\security\cacerts
现在只需向 Trust Store 提供密码(默认密码为:changeit): Accessing Trust store using Keytool
您现在可以根据需要将任何证书添加到信任库:
JRE_HOME/bin/keytool -import -trustcacerts -alias certAlias -file certFile -keystore trustStoreFile
苹果电脑
- 打开Keychain Access.app(快捷方式:按 Command + 空格键并键入 Keychain)
- 搜索所需的证书文件(例如
example.cer
)并右键单击 ➡️ 选择导出... ➡️ 将其保存到某个位置,例如Desktop
. - 按照此答案中的说明将其导入您的 Java 证书存储。重要的命令是:
cd $JAVA_HOME/lib/security
sudo cp cacerts cacerts.bak
sudo keytool -importcert -alias youralias -file ~/Desktop/example.cer -keystore cacerts
密钥库的默认密码是:changeit
.
- 假设,
$JAVA_HOME/lib/security
指向/Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home/lib/security
您的系统,在文件中添加以下行eclipse.ini
:
-Djavax.net.ssl.trustStore=/Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home/lib/security/cacerts
-Djavax.net.ssl.trustStorePassword=changeit
注意:如果您使用的是 STS,请按照此答案查找.ini
文件。
- 重新启动 Eclipse。
您可能应该创建证书并使用 keytool 将其导入默认密钥库。我不确定您要对您的应用程序做什么,但它应该能够使用该证书。
sudo keytool -import -file /Users/balaji-pt2176/Desktop/Apple\ Worldwide\ Developer\ Relations\ Certification\ Authority.cer -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/security/cacerts
在麦克