java.lang.Exception:输入的不是X.509证书:keytool错误

时间:2013-02-15 06:30:08

标签: https tomcat6 keytool x509

我想在tomcat 6中激活https。当我导入SSL证书时,我得到以下错误:

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

如何解决此错误?

2 个答案:

答案 0 :(得分: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>

在密钥库中检查您的证书:

keytool -list -v -keystore tomcat.jks

答案 1 :(得分:4)

我遇到了同样的问题,实际问题是行结束char,证书文件不应该包含行尾char。解码后的字符串应该在一行中。

 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-----

没有额外的行或列。希望它有所帮助。