オレオレ証明書をクライアントにインストールし、ブラウザ上の警告を消す
※あくまでオレオレ証明書を使ってHTTPSを利用する場合の対策です。
ブラウザ: Google Chrome
オレオレ証明書を利用してHTTPS通信を可能にすることはできますが、信頼された機関から発行されたものではないのでブラウザ上で警告が出ます。そのため、オレオレ証明書をクライアントにインストールして警告を出さないようにします。
目的: オレオレ証明書を利用したHTTPS通信でもブラウザ上の警告を出さないようにする
方法: オレオレ証明書をクライアントにインストールする
証明書を正しくインストールしたにもかかわらず、以下のエラーが表示される場合があります。
問題: 証明書を登録したのにnet::err_cert_common_name_invalidのエラーがでる
原因: 新しいブラウザはCommon Name(CN)ではなくSubject Alternative Name(SAN)とアクセスするドメインの一致を判定する
解決法: 証明書にCNのほかにSANを設定する
今回はSANの追加をしてから証明書のインストール作業を行います。
SANを追加する
SANはCSR(証明書署名要求)から証明書を作成する際に追加します。
適当なテキストファイルを作成します。
subjectAltName = IP:xxx.xxx.xxx.xxx, DNS:example.com
IPを登録したいときはIP:、ドメイン名を登録したいときはDNS:と記述します。
複数の場合はコンマで区切ります。
SANを含む証明書の作成
証明書発行のコマンドの最後に-extfile [sanが記述されたファイル]を付与します。
openssl x509 - req days 365 -in [CSR] -signkey [秘密鍵] -out [出力する証明書名] -extfile san.txt
参考: SAN(Subject Alternative Name) のオレオレ証明書
## 証明書のインストール
- エラーが発生しているサイトにGoogle Chromeでアクセスする
- 左上の警告マークをクリック
- 「証明書(無効)」の項目をクリック
- 「詳細」タブをクリック->「ファイルにコピー」をクリック
- エクスポートウィザードが表示されるので、証明書の種類はデフォルトのまま、任意の場所に証明書を保存
- 証明書を「信頼されたルート証明機関」にインポートするためにcertmgr.mscを起動
- 「信頼されたルート証明機関」を選択し、右クリック->すべてのタスク->インポートを選択
- 手順5で保存した証明書を選択し、「信頼されたルート証明機関」にインポートする
- Chromeをすべて閉じ、再度対象のサイトにアクセスしてエラーが出ないことを確認する