Chrome: オレオレ証明書でもセキュリティ警告画面が出ないようにする方法


オレオレ証明書を使うと、CAに認証されていない証明書なのでブラウザにセキュリティの警告がでる

これが出ないようにするには、今までは自分のマシン上でその証明書を信頼するように設定するだけで良かった

この手の記事はすでにたくさんあるが、Chromeの仕様が最近変わり、今までのやり方では足りないので最新のやり方をまとめてみました。

証明書にSAN(Subject Alternative Name)を設定する

Chromeでは仕様が変わり、現在ではアクセスするドメイン名の証明書の一般名(CN)を判定せず、SAN(Subject Alternative Name)のDNS Nameの値でアクセスするドメインとの一致を判定する動作になっている
なので、SANが設定されるよう証明書を作らないといけない。

opensslの設定ファイルopenssl.cnfを探す。CentOS7だと/etc/pki/tls/openssl.cnfにあるが、OSやインストールの仕方によって違うはず

find /usr/lib -name openssl.cnf # 例

見つけたら、編集前にオリジナルをコピー

次に、alternate_namesにドメイン名をセットしてopenssl.cnfに追加する. どこに追加してもOK

[ alternate_names ]

DNS.1        = example.com
DNS.2        = www.example.com
DNS.3        = mail.example.com
DNS.4        = ftp.example.com

次に、[ v3_ca ]を同じファイル上で探して変更。

subjectAltName      = @alternate_names
keyUsage = digitalSignature, keyEncipherment

次に、copy_extensionsのコメントアウトを外す

# Extension copying option: use with caution.
copy_extensions = copy # コメントアウトを外す

この設定の後で、オレオレ証明書を発行する。ここまでに設定ファイルで文法エラーがあれば、opensslコマンドでエラーがでるはず。

openssl genrsa -out private.key 3072
openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730

オレオレ証明書が常に信頼されるようにする

生成されたcertificate.pemをローカルに持ってきて、ダブルクリックします。ポップアップが開くので、詳細設定で「常に信頼」されるようにする。

この辺は他の記事で言われているやり方と同じ

これで、セキュリティの警告がでなくなり、鍵マークが見えるようになったと思います。

まとめ

  • SANがセットされるようにopensslの設定を変えてから、証明書を発行する。
  • 後は以前と同じように、ローカルマシン上でその証明書を信頼するよう設定を変える。

参考

https://stackoverflow.com/questions/21488845/how-can-i-generate-a-self-signed-certificate-with-subjectaltname-using-openssl
https://www.ipentec.com/document/windows-chrime-error-net-err-cert-common-name-invalid-using-ssl-certificate-signed-with-local-ca