0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[リサーチ・メモ] トラストストアに証明書を追加する

Posted at

背景

仕事でSendGridの単体打鍵を実施しようとした際に、下記エラーが発生した。トラストストアに証明書を追加する必要があり、実装したことが無かった為、メモとして纏める。

[ERROR   ] CWPKI0823E: SSL ハンドシェークの失敗: SubjectDN [CN=*.api.sendgrid.com] の署名者がホスト [api.sendgrid.com:443] から送信されました。  SSL 構成別名 [defaultSSLConfig] にあるトラストストア [public.jksへのパス] にこの署名者を追加する必要がある可能性があります。  SSL ハンドシェーク例外からの拡張エラー・メッセージ: [PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]

そもそもトラストストアとは

信頼できる発行元からの証明書を保管して、信頼性のある通信を確立するセキュリティ。
「public.jks」の情報は「server.xml」のkeyStoreタグに記載されている。

<keyStore id="xxx" location="public.jks" password="yyy" type="JKS"/>

トラストストアに証明書を追加する

1. 下記を参考にOpenSSLをインストールする

2. openSSLで証明書(.crtファイル)を取得する

openssl s_client -connect api.sendgrid.com:443
コマンド 詳細
openssl OpenSSLツールの起動
s_client 任意のサーバーに対する手動接続を実施する
-connect api.sendgrid.com:443 指定したホスト名とポート番号に接続する

3. 文字化け防止の為に、下記を実施(文字コードをUTF-8に変更)

chcp 65001

4. トラストストアに証明書を追加する

keytool -import -alias sendgrid -file 「2.のcrtファイルへのパス」 -keystore 「public.jksへのパス」
コマンド 詳細
keytool -import 新しい証明書を追加する
-alias 証明書に対して名前を指定する(今回の場合は、証明書にsendgridという名前が付けられる)
-file インポートする証明書へのパスを指定する
-keystore インポート先を指定する

5. パスワードを入力し、yesを答える

デフォルトパスワードは「changeit」

6. トラストストアに証明書が追加されているか確認する

keytool -list -keystore 「public.jksへのパス」 | grep 'sendgrid'
コマンド 詳細
keytool -list -keystore 指定したファイルの一覧を表示する
grep 上記一覧から指定した名前のファイルを表示する(ない場合は、何も表示されない)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?