keytool error: java.io.IOException: Illegal header: -----BEGIN CERTIFICATE-----

keytool error: java.io.IOException: Illegal header: -----BEGIN CERTIFICATE-----

使用以下命令:

/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.55.x86_64/bin/keytool -import -alias tomcat -trustcacerts -file certificate.crt -keystore $OBM_HOMEconf/keystore

我收到错误:

keytool error: java.security.cert.CertificateException: java.io.IOException: Illegal header: -----BEGIN CERTIFICATE-----

我在 GoDaddy 上生成了证书,就像我之前为要安装此证书的服务器所做的那样,并从他们那里下载了 Tomcat 版本的文件。

我确保证书和命令中的所有连字符都是实际的连字符(我之前遇到过问题,它们以 em 破折号的形式出现)。我不明白为什么它说证书 header 是非法的 header.

Java 的 PEM 解析器在处理额外的白色时有点挑剔space。 header 行中的尾随 space 字符会导致此错误消息。