6

.jksファイルをJavaセキュリティのトラストストアにインポートするにはどうすればよいですか?私が見ているすべてのチュートリアルは、「。crt」ファイルを使用しています。ただし、keytoolコマンドを使用して生成したキーストアでもある「.jks」ファイルしかありません。

現在、私はこのチュートリアルに従っています。

チュートリアルに基づいて、Javaキーストアとキーペアを生成し、既存のJavaキーストアの証明書署名要求(CSR)を生成することができました。しかし、ルートまたは中間CA証明書を既存のJavaキーストアにインポートしたり、署名されたプライマリ証明書を既存のJavaキーストアにインポートしたりすることはできません。これは、「。cert」ファイルを探しているためです。

チュートリアルに記載されている手順に何か足りないものがありますか?持っているファイルが「.jks」ファイルだけの場合、どうすれば証明書を信頼できますか?そして、「。csr」ファイルの用途は何ですか?

私はWindowsを使用していることに注意してください。

4

2 に答える 2

12

これ".jks" トラストストアです。または、少なくとも JSSE に割り当てる場合はそうあるべきです。CA からの証明書をそのファイルに追加する必要があります。その後、ソフトウェアは証明書を繰り返し処理して証明書チェーンを検索します。秘密鍵は (パスワードで保護された)".jks"ファイルに残す必要があります。

".jks"つまり、証明書をエクスポートするのではなく、証明書をインポートする必要があります。証明書要求の応答に含まれていない場合は、特定のプロバイダーの証明書を個別にダウンロードする必要がある場合があります。お気に入りのブラウザからエクスポートすることもできます。通常、これらは X5.09 DER 形式で格納されます (これは Java と互換性があるはずですkeytool)。

手順 (一般):

  1. キー ペアと証明書要求を生成し、新規または既存のキー ストアに保存します ( .jks)
  2. 署名する証明書要求を送信し、要求した証明書から始まるチェーンを取得します
  3. 秘密鍵を使用して証明書チェーンをキー ストアにインポートする
  4. 検証を行う必要があるパーティ (SSL を使用する場合は少なくとも 1 つ以上のクライアント) に対して新しいキー ストアを生成するか、既存のキー ストアを使用し、証明書チェーンをインポートします。
  5. 上記のキー ストアの証明書チェーンの証明書、おそらく最上位の証明書 (「ルート」証明書) を信頼します。
  6. 秘密鍵を含むキー ストアを使用するサーバーと、後者のキー ストアを使用する複数のクライアントなど、パーティを構成してテストします。
于 2012-07-28T10:35:25.783 に答える
5
#Use Keytool command to generate a self-signed certificate and install the certificate in Client Machine JDK Security Key store path.

# generate a certificate using JKS format keystore
keytool -genkey -alias selfrest -keyalg RSA -keypass pass123 -storetype JKS -keystore selfsigned.jks -storepass pass123 -validity 360 -keysize 2048

# To check the content of the keystore, we can use keytool again:
keytool -list -v -keystore selfsigned.jks

#Export Self signed certificate into .cer file
keytool -exportcert -alias selfrest -keystore selfsigned.jks -file selfsigned.cer

# (Run As Administrator- to open CMD.exe)
# Install self-signed certificate into Java JDK CA Certificate key store path
# to avoid giving certificate path in the client program.
keytool -import -alias selfrest -keystore "C:\Program Files\Java\jdk1.8.0_181\jre\lib\security\cacerts" -file selfsigned.cer

# List certificates stored in JDK Key store which you have just now imported into JDK Security path.
keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts
于 2018-11-08T10:01:18.790 に答える