2013-10-28 4 views
6

crt/certフォーマットで新しい証明書を受け取りました。このファイルをテキストエディタで開くと、このファイルに完全な証明書チェーンが追加されました。各証明書は、で始まる:キーストアファイルにP7Bファイルをロードできません

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

で終わる:

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

は、間には空行はありません。私はopensslに敏感ではないので、Windowsに証明書を開き、形式(test.p7b)の完全なチェーンで証明書をエクスポートしました。このファイルを開くと、Windowsではすべて正常に見え、ルート、中間、証明書はすべてチェーン内にあります。

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

私はP7BファイルIをテスト:私は次のエラーを取得する

keytool -import -trustcacerts -alias my.domain.com -keystore my.domain.keystore -keypass changeme -storepass changeme -file test.p7b 

を:私は、サーバー上のファイルtest.p7bを置き、次のようにkeytoolでこれをインポートしよう

bash-4.1$ openssl x509 -in test.p7b -text 
unable to load certificate 
140009984849736:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:698:Expecting: TRUSTED CERTIFICATE 

または:

bash-4.1$ openssl x509 -in test.p7b -inform DER -text 
unable to load certificate 
140396587853640:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1320: 
140396587853640:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:382:Type=X509_CINF 
140396587853640:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:752:Field=cert_info, Type=X509 

私を助けてくれますか?

+0

のOpenSSL X509 -in test.p7b -inform –

+0

@CamilleG -text DER。更新された質問を出力します。また、エラー –

答えて

5

証明書チェーンをインポートするとき、keytoolは証明書がDER形式で読み込まれることを期待しています。あなたは、OpenSSLと、このようなバンドルを作成することができます

1 - DER形式ですべての証明書を変換し

openssl x509 -in certificate.pem -outform DER -out certificate.crt 

2 - 連結方式の1つのファイルにすべてのDER証明書

cat cert1.crt cert2.crt ... > chain.der 

3 - 今することができますkeytoolを使用してキーストアにチェーンをインポートします

keytool -importcert -trustcacerts -alias <myalias> -file chain.der -keystore keystore.jks -storepass <mypassword> 

は、キーが生成されたときに使用されたものと同じである必要があります()。

4 - 鎖が正常にインポートされたことを確認

keytool -list -v -keystore keystore.jks 
+0

をスローします。この証明書は私たち自身の証明書ではなく、クライアントから受け取った証明書です。私は私たちのクライアントに、エイリアスが作成された鍵を使用したときに使用するかどうか尋ねるべきでしょうか?鍵となる質問では、証明書署名要求(CSR)を意味しますか? –

+0

また、「キーストアに1つのエントリが含まれています」という出力が表示されます。それは正しいでしょうか? –

+0

このエイリアスは、keytool listコマンド 'keytool -list -keystore keystore.jks'を使って見つけることができます。 'あなたのキーストアには1つのエントリが含まれています。エイリアスは次の行に表示されます: '、2013年10月28日、PrivateKeyEntry、 ' – Jcs

関連する問題