java将SSL证书导入系统密钥库

Posted Bourbon.Tian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java将SSL证书导入系统密钥库相关的知识,希望对你有一定的参考价值。

之前安装JIRA和Confluence,配置了SSL证书之后遇到应用程序链接的问题:

SSL证书不被信任,导致JIRA和Confluence无法关联。

尝试过很多办法无果之后打算放弃。

最终还是放弃了......

你以为这篇博客已经结束了?

其实它并没有,我只是想凑个字数,让文章看起来饱满一些。

因为解决的办法我已经找到了,而且很简单。

 

———————————下面开始敲黑板,划重点—————————————

1.登录服务器,将InstallCert.java下载到本地,并通过java进行编译: 

# git clone https://github.com/escline/InstallCert.git
# javac InstallCert.git

2.访问服务器,并检索证书,格式为:

java InstallCert [域名]:[端口]

# java InstallCert www.test.abcd.com:443

Loading KeyStore /usr/local/jdk1.8.0_161/jre/lib/security/cacerts...
Opening connection to www.test.abcd.com:443...
Starting SSL handshake...

.......

Added certificate to keystore \'jssecacerts\' using alias \'www.test.abcd.com-1\'

3. 从创建的jssecacerts密钥库中提取证书,格式为:

keytool -exportcert -alias [域名]-1 -keystore jssecacerts -storepass changeit -file [域名].cer

# keytool -exportcert -alias www.test.abcd.com-1 -keystore jssecacerts -storepass changeit -file www.test.abcd.com.

Certificate stored in file <www.test.abcd.com.cer>

4. 将证书导入到系统密钥库中,格式为:

keytool -importcert -alias [域名] -keystore [系统密钥库路径] -storepass changeit -file [域名] .cer

# keytool -importcert -alias www.test.abcd.com -keystore /usr/local/jdk1.8.0_161/jre/lib/security/cacerts -storepass changeit -file www.test.abcd.com.cer

......
 
Owner
......  
输入yes
    Trust this certificate? [no]:  yes

Certificate was added to keystore

  

注意:如果在导入证书时遇到类似如下的报错,

keytool 错误: java.lang.Exception: 证书未导入, 别名 <www.test.abcd.com> 已经存在

怕是玩不下去了......

因为第一次遇到这个问题,所以我也不知道怎么办。

不妨试试“keytool --help”,结果让我看到了-delete 参数,仿佛看到了一丝希望。

于是我又试了一下 “keytool -delete --help”,找到了-alias,这时我会心的一笑,似乎明白了什么,既然可以导入,那就一定可以删除。

# keytool -delete -alias www.test.abcd.com -keystore /usr/local/jdk1.8.0_161/jre/lib/security/cacerts -storepass changeit

没有输出?没有输出就是最好的输出,再次尝试导入命令:

# keytool -importcert -alias www.test.abcd.com -keystore /usr/local/jdk1.8.0_161/jre/lib/security/cacerts -storepass changeit -file www.test.abcd.com.cer

成功了!JIRA和Confluence操作一样。

5.最后,不要忘记重启连个服务。登录页面再次查看:

 

可以说是很完美了~

 

以上是关于java将SSL证书导入系统密钥库的主要内容,如果未能解决你的问题,请参考以下文章

java Java CLI应用程序的代码,用于将主机名/端口的SSL / TLS证书安装到Java的密钥库中

以编程方式访问 java 密钥库以创建 SSLSocketFactory

GoDaddy SSL证书更新到keytool 密钥库中

配置spring通过ssl连接mysql

Java keyTool - 将主要/次要中间证书附加到密钥库[关闭]

kafka使用ssl加密和认证