サーバー証明書に自己署名証明書を使っているとブラウザが警告を表示しますが、クライアント PC に証明書をインストールしても Chrome だけは警告が消えませんでした。
Chrome はコモンネームではなく SAN(Subject Alternative Name) をチェックしているからだそうです。(Chrome 58 以降)
そこで、以前 OpenSSL を使って自己署名証明書を作成しましたが、
今回はこれに SAN を加える方法です。
細かい説明は以前の記事(上記)に書いてあるので、ここでは実行するコマンドのみを載せたいと思います。
SAN 用のテキストファイルを用意
事前準備として、以下のように SAN の内容を記述したテキストファイルを用意します。
ファイル名は何でも構いません(今回は san.txt
という名前で保存しました)。
subjectAltName = DNS:*.example.com, IP:172.20.0.1
DNS ではワイルドカードが使えますが、IP では使えません。
自己署名証明書の作成手順
秘密鍵の作成
以下のコマンドは公開鍵暗号方式として RSA を利用した 2048bit の秘密鍵 server.key を作成しています。
> openssl genrsa -out server.key 2048
証明書署名要求の作成
先ほど作成した秘密鍵 server.key
を指定して証明書署名要求 server.csr
を作成しています。
> openssl req -out server.csr -key server.key -new
いろいろ聞かれるので、適当に入力します。
サーバー証明書の作成
通常は上記で作成した証明書署名要求 server.csr
を自分の秘密鍵 server.key
で署名してサーバー証明書を作成します。
ここが前回と異なるところです。
SAN を付加するために -extfile san.txt
が追加になっています。
> openssl x509 -req -days 3650 -signkey server.key -in server.csr -out server.crt -extfile san.txt
尚、上記は有効期限が 10 年間のサーバー証明書 server.crt
を作成しています。
確認
SAN が付加されているか確認します。
> openssl x509 -text -in sample.crt -noout
X509v3 Subject Alternative Name:
にテキストファイルに記述した SAN が追加されていれば OK です。