web-dev-qa-db-ja.com

java.lang.Exception:X.509証明書ではない入力:keytoolエラー

Tomcat 6でhttpsをアクティブにしたいのですが、SSL証明書をインポートすると、以下のエラーが発生しました。

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

このエラーを解決するにはどうすればよいですか?

8
user1865629

.crtファイルをJavaキーストアにインポートしようとしたときに、同様の問題が発生しました。

以下の手順で修正できます。

Pkcs12形式のキーストアを生成します。

以下の2つのコマンドで、必要に応じてパスワードを入力します。

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
6
Pritish Shah

私は同じ問題に直面しました、そして実際の問題は行末文字でした、証明書ファイルは行末文字を含むべきではありません。デコードされた文字列は1行である必要があります。

 例えば。 cerファイルに以下のような文字が含まれている場合
 ----- BEGIN CERTIFICATE ----- 
 SSFDsdfsSDfsGSDFasdfSFADsdSDFSsdf 
 FGHJFGHfghRTURTYUTRYyrtRTYTRYRTYR 
 ASDFRTYRT $%&EEFGERedfgre $%#dfg ^#
 ----- END CERTIFICATE ----- 

に変更します

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

SSFDsdfsSDfsGSDFasdfSFADsdSDFSsdfFGHJFGHfghRTURTYUTRYyrtRTYTRYRTYRASDFRTYRTrtyrtyRTryrTRYrtyrTYRYrtwerWERWer#$%&EEFGERedfgre $%#dfg ^#

-----証明書の終了-----

余分な行や列はありません。それが役に立てば幸い。

4
jay Vaghela