Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

事象

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ファイルへ登録しておく。

alpha_pz
Struts2とThymeleaf3大好きでプラグインも作ってますよ。お仕事はSpringですけれど。
https://github.com/A-pZ/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away