ことの発端
ことの発端は些細な事だった。
ある日とある会社のサーバの面倒を見ることになり、引き継いで間もないころ
「WordPressのアップロードがうまくいかない」との要望がきました。
まあよくあるphp.iniのアップロード容量制限で引っかかっていたため以下の設定を行う。
post_max_size = 30M
upload_max_filesize = 30M
memory_limit = 128M # これは元々
php.ini変更はApache再起動が必要なため、再起動。
service httpd restart
はい、終わり。と思ったら。
Enter pass phrase for /path/to/ssl.key:
という文字が・・・
ワナワナ・・・これからがほんとうの地獄だ・・・
今まで一回もApache再起動したことがなかった
お客様、表題の通りでございます。
誰もパスフレーズ知らないわけなんですよ。
そして、マゴマゴしている間、Apacheは止まっているため全サービスがダウン。
(10サービスぐらい動いていたw)
パニック!!w
(冷静に考えればこの後の作業をぺぺぺーってやれば良かったんだけどね。)
やってはいけないこと:過去のメンバーに事情聴取
運が良ければパスフレーズ分かるかもですが、100億%分かりません。
そんなことしてる間もサービスは落ち続けているのでやめましょう。
1.とりあえずSSL止める。
SSLの設定が少数であれば、まずはその設定を外して再起動してしまいましょう。
それだけで、被害は減る可能性が高いです。
なのでVirtualHostの設定を確認して443の記述を根こそぎ消しましょう。
NSSLからリダイレクトさせてる可能性もあるのでそのへんも確認。
cd /etc/httpd/conf.d/
grep SSL *
SSLCertificateFile /etc/httpd/ssl/ssl-hoge.crt
こんな感じの行が見つかるのでその記述があるVirtualHostごとコメントアウトしましょう。
で、再起動。
他に設定が無ければ、再起動出来て、SSLのサイト以外は復旧出来るはずです。
2.今のSSL設定は諦める
あきらめましょう。
3.新たにCSR発行
SSL証明書の発行に当って、大概の会社は再発行が出来ると思います。
なので、新たな秘密鍵、CSRを作って新しい気持ちで証明書を再発行しましょう。
sslの再発行のために秘密鍵を作成
cd /etc/httpd/ssl/
openssl genrsa -des3 -out ssl-hoge.key 2048
# パスフレーズを外す
openssl rsa -in ssl-hoge.key -out ssl-hoge.key
CSR作成
openssl req -new -key ssl-hoge.key -out ssl-hoge.csr
※ CommonName(出来ればCSR情報全て)は以前のSSL設定のものと合わせましょう。そこで引っかかる可能性があります。
SSL発行の管理画面からCSRをコピペする(会社によってやり方が違う可能性あり)
はい、こぴーあんどぺーすとです。
待つ
大体再発行に小一時間かかりそうです。無限にも思える時間の始まりです。
証明書がメールで送信されるのでコピーする
メールじゃない場合もあります。
その場合は、SSL発行管理画面等からダウンロードしたりしましょう。
証明書をサーバに置く
vi /etc/httpd/ssl/ssl-hoge.crt
※以前のCRTを書き換える形で置きましたが、ふつーにコピーでもOKです。
コメントアウトを戻してapache再起動
パスフレーズは外した秘密鍵で作ったのでふつーに再起動出来るはずです。
最後に。
知らないサーバでいきなり再起動は、だめ、絶対!!