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.最後,不要忘記重啓連個服務。登陸頁面再次查看:

 

能夠說是很完美了~

相關文章
相關標籤/搜索