今回はSSL関連の記事です。
オレオレ認証局を立て、(CNには、サーバのドメイン名指定)
オレオレ認証局により、署名したサーバ証明書をブラウザのトラストストアにインポートした
にもかかわらず、セキュリティ警告画面が出てしまいました。
今日はその対処法を紹介します。
結論からいうと、Chromeのversion58から証明書のCNはSAN(Subject Alternatiove Name)にしないといけなくなったみたいです。
ってことで、SAN対応のSSL証明書の発行手順を残します。
コマンドはこれ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
認証局用の秘密鍵、署名要求の作成→オレオレ証明書を作成 openssl genrsa 2048 > root_private.key openssl req -new -key root_private.key > root.csr openssl x509 -req -days 365 -sha256 -in root.csr -signkey root_private.key -extfile /etc/pki/tls/openssl.cnf -extensions SAN -out root.crt クライアント用の秘密鍵、署名要求の作成→認証局の証明書と秘密鍵で署名 openssl genrsa 2048 > client_private.key openssl req -new -key client_private.key > client.csr openssl x509 -req -days 365 -sha256 -in client.csr -CA root.crt -CAkey root_private.key -CAcreateserial -extfile /etc/pki/tls/openssl.cnf -extensions SAN -out client.crt サーバ用の秘密鍵、署名要求の作成→認証局の証明書と秘密鍵で署名 openssl genrsa 2048 > server_private.key openssl req -new -key server_private.key > server.csr openssl x509 -req -days 365 -sha256 -in server.csr -CA root.crt -CAkey root_private.key -CAcreateserial -extfile /etc/pki/tls/openssl.cnf -extensions SAN -out server.crt .p12ファイルへの変換 openssl pkcs12 -export -in client.crt -inkey client_private.key -out client.p12 -name something -CAfile root.crt |
注意点は、上記コマンドの実行前にopensslの設定ファイルを修正しないといけません!
ってのもSAN対応にするためです。
Linuxだと多分ここにある「/etc/pki/tls/」
このディレクトリのopenssl.cnfをいじります。念のためバックアップをとっておいてください。ま、大丈夫やけど(笑)
では、いじります。
vi /etc/pki/tls/openssl.cnf
でエディタモードになったらいっちゃん下にこれを記述します
1 2 3 4 5 6 |
[ SAN ] subjectAltName = @alt_names [ alt_names ] DNS.1 = サーバ証明書に使うドメイン DNS.2 = サーバ証明書に使うドメイン |
このサーバ証明書に使うドメインの部分に使用したいドメイン名を書いていってください。「example.com」的な感じで。
※ここ、ワイルドカードでやってみたけどセキュリティ警告画面がやっぱり出るんで、ワイルドカードは使えないかもです。
設定したら、さっきのコマンドを上からやってってください。
一応説明していくと、上の3行。これはオレオレ認証局用のコマンドです
・秘密鍵の作成コマンド
・署名要求のコマンド
・openssl.cnfを使用して証明書を作成するコマンド
作成が終えたらこのコマンドで中身を見てください
1 |
openssl x509 -text < root.crt |
1 2 3 |
X509v3 extensions: X509v3 Subject Alternative Name: DNS:ドメイン名1, DNS:ドメイン名2 |
って表記があれば完璧です!
で、次クライアント証明書を作成します。上のコマンドでチャチャっと作っちゃってください。
サーバ証明書に関しても同様です。
ただ、このサーバ証明書のCN部分は注意が必要です!
ここ、サーバのドメイン名に合わせなかった場合、セキュリティ警告画面が出ました!合わせておきましょう!
両方作成ができたら、クライアント用の秘密鍵と証明書をダブルクリックで取り込めるようにp12形式に変換します。
そのコマンドがいっちゃん下のやつ。
作成したら、ローカルにもってきてダブルクリック!取り込めましたね。
サーバ証明書に関しては、お使いのサーバに入れちゃってください。
Apacheかnginxなら、既に解説している記事がありますので、そちらを確認してね。
設定がすべて完了したら、サーバにアクセスしてみましょう!
はい。セキュリティ警告画面が出ることなく、クライアント証明書の選択ポップアップが表示され、選択し次へ進むと無事に画面表示できましたね!
以上、CNにドメイン名設定したのに、セキュリティ警告画面が出たときに対処法でしたーーー
コメント