Chromeのアップデートをしたところ、こちらの手順で作成していたオレオレ証明書が、何故か信用されない証明書として扱われるようになってしまった。 なんじゃこりゃ、と思って調べて見たところ、こちらをみるとどうやらRFC2818ではSubjectAltNameに利用するホスト名を記述する方法が推奨されているらしく、CommonNameは非推奨になっているらしい。 で、Chrome 58からはそれに則ってSubjectAltNameが無いとエラーになるという。 おおぅ…。

こうなるとサーバ証明書を作り直す必要がある。 作り直すのはサーバ証明書だけでよい。 とりあえず、まず以下のようにコマンドを実行しCSR(newreq.pem)を作成する。

openssl req \
  -new \
  -key server.key \
  -out newreq.pem \
  -days 3650 \
  -subj "/C=JP/ST=Tokyo/L=Tachikawa/O=Test.Inc/CN=*.blacknon.local" \
  -config <(printf "[req]\nreq_extensions = v3_req\ndistinguished_name = req_distinguished_name\n[req_distinguished_name]\n[v3_req]\nbasicConstraints = CA:FALSE\nkeyUsage = nonRepudiation, digitalSignature, keyEncipherment\nsubjectAltName='DNS.1:*.blacknon.local'") \

CSRの作成後、ICAの設定ファイル(前回の作成手順だと/etc/pki/tls/openssl_ica.cnf)で以下の項目のコメントアウトを解除する。

/etc/pki/tls/openssl_ica.cnf
copy_extensions = copy

コメントアウトの解除後、以下のコマンドを実行してSubjectAltName付きの証明書を発行する。

/etc/pki/tls/misc/ICA -sign

以上。あとは、発行した証明書を使って設定してやるだけだ。


参考