2013-02-15 687 views
8

我希望當我導入SSL證書以激活Tomcat的6 HTTPS然後,我就在下面另有說明錯誤:java.lang.Exception的:輸入不是X.509證書:keytool的錯誤

keytool error: java.lang.Exception: Input not an X.509 certificate 

哪有我解決這個錯誤?

+1

[錯誤導入SSL證書:不是X.509證書](http://stackoverflow.com/questions/9889669/error-importing-ssl-certificate-not-an-x-509-certificate) – 2013-03-12 22:17:38

+0

[使用SSL和證書使用HttpClient]可能的重複(http://stackoverflow.com/questions/2774722/using-httpclient-with-ssl-and-certificates) – user1251007 2014-05-21 11:59:46

回答

6

我在嘗試將.crt文件導入java密鑰庫時遇到過類似的問題。

我可以按以下步驟來解決這個問題:

生成PKCS12格式密鑰庫:

openssl pkcs12 -export -name <domain_name> -in <certificate_name>.crt -inkey <certificate_name>.key -out keystore.p12 

轉換PKCS12密鑰庫:

,只要你想在下面兩個命令輸入密碼java密鑰庫

keytool -importkeystore -destkeystore tomcat.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias <domain_name> 

檢查您的證書在ke ystore:

keytool -list -v -keystore tomcat.jks 
4

我面臨同樣的問題,實際問題是行字符結束,證書文件不應包含行字符結束。解碼後的字符串應該在一行中。

 Eg. if your cer file contains char like below 
-----BEGIN CERTIFICATE----- 
SSFDsdfsSDfsGSDFasdfSFADsdSDFSsdf 
FGHJFGHfghRTURTYUTRYyrtRTYTRYRTYR 
ASDFRTYRTrtyrtyRTryrTRYrtyrTYRYrt 
werWERWer#$%&EEFGERedfgre$%#dfg^# 
-----END CERTIFICATE----- 

將其更改爲

-----BEGIN CERTIFICATE-----

SSFDsdfsSDfsGSDFasdfSFADsdSDFSsdfFGHJFGHfghRTURTYUTRYyrtRTYTRYRTYRASDFRTYRTrtyrtyRTryrTRYrtyrTYRYrtwerWERWer#$%& EEFGERedfgre $%#^ DFG#

-----END CERTIFICATE-----

沒有多餘的行或列。希望能幫助到你。