LANP構成でWeb上からSSLの設定が出来るものを作成したのですが、
その時の注意点を忘れないように記載しておきます。
セキュリティーも相まってSSLが手軽にWeb上から導入出来るサーバーがたくさんあります。
その中で似た様なものを作るはめになりました。
普通に登録するだけならssl.confに記載された証明書と入れ替えればいいだけです。
あとはssl.confのSSLエンジンをonにしてhttpdを再起動するだけ。
とても簡単にSSLは設定できます。
しかし、これは正常に行われた場合のみにすんなりいくパターンです。
ちょっとわかってない人が使うことを想定してみましょう。
1.まちがって証明書を入れるところにCSRを入れてしまう
2.よくわからないから発行されたものをとりあえず入れてみる
3.コピー&ペーストしたつもりが不完全だった
4.秘密鍵はあっているけど、証明書が違うものだった…
5.中間証明書を間違って違う認証局のものを使ってしまった
・
・
・
あげるとキリがないですが、思いつくだけでもこんな感じの事が考えられます。
別に間違ったら再入力すればいいと思うかもしれないですが
単純に
証明書+鍵を入力 → httpd再起動
というシステムの場合、証明書などがおかしい場合はhttpdがエラーで起動しません。
最悪Webがそのまま停止となりアクセス自体が出来なくなってしまいます。
そこで証明書を入れる際は事前に以下の事を確認する必要があります。
証明書であること
秘密鍵であること
秘密鍵と証明書がペアであること
サーバーに設定されているドメインと証明書などのコモンネームが一致していること
この4つを確認する必要があります。
それぞれの確認はopensslコマンドにて行います。
証明書 (中間CA証明書)
openssl x509 -in /etc/pki/tls/certs/crtificate.crt -text
秘密鍵
openssl rsa -in /etc/pki/tls/private/key.key -text
証明書 + 秘密鍵 ペア確認
// 証明書Module
$sertcn = exec("openssl x509 -in /etc/pki/tls/certs/crtificate.crtt -modulus -noout");
// 秘密鍵Module
$keycn = exec("openssl rsa -in /etc/pki/tls/private/key.key -modulus -noout");
※上記の各戻り値にCN=と(コモンネームの略)記載された部分にドメインが記載されていますのでそれを比較します
関連記事