我想在tomcat 6中激活https。当我导入SSL证书时,我得到以下错误:
keytool error: java.lang.Exception: Input not an X.509 certificate
如何解决此错误?
答案 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-----
没有额外的行或列。希望它有所帮助。