2
5

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 5 years have passed since last update.

「JavaのKeytoolを使った自己署名証明書で証明書エラーを出さない」ときのメモ

Last updated at Posted at 2019-06-20

事象

Chrome58以降では、CNの名前とリクエストしたホスト名が一致しても安全な接続とはみなさず、ERR_CERT_COMMON_NAME_INVALID が返される。例えば CN=localhost で発行した証明書で、https://localhost でアクセスした場合のこと

理由

Chrome58以降は、証明書V3の拡張領域:DNS名でも検証している。
Qiita:Chromeに怒られないオレオレ証明書の作り方

Keytoolでの対応と制約事項

keytoolで自己署名証明書を発行するときのオプションに、DNSも指定する。そのとき、ドメイン名は必ずA.B.CないしはA.B.C.Dのフォーマットになる。keytoolの制限で、ワイルドカードや .から始まる後方一致形式の指定はできないようだ。

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 
-ext san=dns:sample.localhost.com -keystore "tomcat.jks" -validity 3650

(実際は1行で)

キーストアのパスワードを入力してください:(キーストアのパスワード)
新規パスワードを再入力してください:(キーストアのパスワード)
姓名は何ですか。
  [Unknown]:  sample.localhost.com (検証用のホスト名)
組織単位名は何ですか。
  [Unknown]:  Capybara
組織名は何ですか。
  [Unknown]:  Capybara
都市名または地域名は何ですか。
  [Unknown]:  Shinagawa
都道府県名または州名は何ですか。
  [Unknown]:  Tokyo
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  JP
CN=sample.localhost.com, OU=Capybara, O=Capybara, L=Shinagawa, ST=Tokyo, C=JPでよろしいですか。
  [いいえ]:  y

発行後、このキーストア tomcat.jks を、任意のサーブレットコンテナに適用して起動すると良い。
その時に、sample.localhost.com を localhost(127.0.0.1) になるよう、hostsファイルへ登録しておく。

2
5
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
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?