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

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

SSL证书不被信任,致使JIRA和Confluence没法关联。git

尝试过不少办法无果以后打算放弃。github

最终仍是放弃了......bash

你觉得这篇博客已经结束了?服务器

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

由于解决的办法我已经找到了,并且很简单。spa

 

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

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.最后,不要忘记重启连个服务。登陆页面再次查看:

 

能够说是很完美了~

相关文章
相关标签/搜索