ごだいぶろぐ 絶対大丈夫じゃないSEのぼやき

頭が封印解除しているシステムエンジニアのブログです。カードキャプターさくら クリアカード編の感想記事を定期更新中

【apache】SSL証明書入れ替えの際に秘密鍵のパスフレーズを解除してなくて詰んだ (º﹃º )

スポンサーリンク

 
この記事では以下の内容について述べます
opensslコマンドで秘密鍵のパスフレーズを解除する
 

経緯

自前で運用しているVPSサーバの証明書の期限が切れてしまった。期限切れ前に業者から通知が来ているのは認識していたのだけれど、連日残業が続いてそのまま忘れてしまいました。お馬鹿。
 
 
んで同じ業者にて新規のサーバ証明書を発行したのだけれども、証明書の入れ替え後にapacheが起動しなくなってしまった。以下のコマンドを打ったけど問題なしとのことで、ファイルの構文的には問題なし。何故だ。
# httpd -t
Syntax OK
 
 
結論から言うと、証明書のconfファイルにて
 
(1)CSR作成に使う秘密鍵ファイル
(2)中間証明書ファイル
(3)サーバ証明書ファイル
 
の3つのファイルを指定する必要があるのだが、(1)のパスフレーズを解除しないままapacheに読み込ませていた。
# vi /etc/httpd/conf.d/ssl.conf

Listen 443 https
<VirtualHost *:443>
ServerName www.hogehoge.com:443
DocumentRoot /var/www/html/
SSLCertificateKeyFile #(1)のパス ←パスフレーズの解除忘れ
SSLCertificateChainFile #(2)のパス
SSLCertificateFile #(3)のパス
</VirtualHost>

前回もやったはずなのに完全に忘れてました。仕組みを把握せずにネットで見たエントリを鵜呑みにして作業をしたせいです。お馬鹿その2。

 
という訳で秘密鍵ファイルのパスフレーズを解除して別ファイルとしてapacheに読み込ませる。以下、(1)の秘密鍵ファイルのパスフレーズを解除したファイルを(1)'としやす。
# openssl rsa -in (1)のファイル -out (1)'のファイル

# vi /etc/httpd/conf.d/ssl.conf

Listen 443 https
<VirtualHost *:443>
ServerName www.hogehoge.com:443
DocumentRoot /var/www/html/
SSLCertificateKeyFile #(1)'のパス
SSLCertificateChainFile #(2)のパス
SSLCertificateFile #(3)のパス
</VirtualHost>

# systemctl restart httpd
 
 
これで問題なく起動した。パスフレーズを解除しなくても、apache再起動の際にパスフレーズの入力を求められるだけで、正常起動する認識だったのだけれども…
 

今日の一言

Python認定試験の予約をした。が、教育機関の関係者なら学割が効くらしく、一般申し込みをしてしまったことを死ぬほど後悔した。ちなみに一般の受験料は10,800円、学割適用後は5,400円…おいらの5,000円が…
 
そしてWEB版のPythonチュートリアルも一通り読み終えた。学習のロードマップ的に、WEBアプリケーションならDjango、データ分析ならKaggle、機械学習ならNumpyに進むべきなんだろうけど、どうしよう。将来的にはAI系に進みたいけど、せっかくなら一通りやりたいねぇ…