結論
server.key が短すぎるとエラーになるため、2048byteで作成しなおしたら起動するようになった。
はじめに
オンラインアプリ開発経験はあるのですが、サーバ構築経験のほぼない初心者のため、四苦八苦しています。
初心者のただのメモですが、もし同じことで詰まる人のために記事にします。
環境
サーバ:RHEL8.2 AWS AMIから作成
Apache 2.4.37
社内プロキシ経由でネットに接続できる環境のため、下記を設定してyumインストールしています
- セキュリティグループのアウトバウンド設定に社内プロキシのポートを設定
- /etc/yum.conf にProxy設定を追加
社内Proxyに阻まれていろいろ捗らない人のためのTips 様を参考に設定しています
※オフラインインストールでイライラした経験があるので、yumコマンド一発でインストールできるのは気持ちいいですね・・・!
実施した内容
① Apache をyumでインストール
Apache httpd 2.4 を CentOS 7 に yum でインストールする手順 様を参考にインストール
無事httpで接続できることを確認
(セキュリティグループでインバウンドルールも合わせて修正)
② HTTPSでも接続するため、OpenSSLをyumでインストール
→ 秘密鍵・証明書(server.key,server.csr,server.crt) を作成
※無料でやりたかったのでオレオレ証明で作成しました。
開発環境用なので、HTTPS接続時に警告が出てもまぁいいかな~と。。
OpenSSL で SSL 自己証明書を発行する手順 様を参考にインストール
他記事で見たのですが、
「Common Name (eg, your name or your server's hostname) 」はServerName と合わせる必要があるとのこと
③ mod_ssl をyumインストールし、②で作成した秘密鍵・証明書を配置
Apache httpd 2.2 に HTTPS (SSL/TLS) の設定をする (CentOS 6) 様を参考に実施
④ Apacheを再起動・・・しようとしたら、起動に失敗する・・・!
調査
- systemctl status httpd や journalctl -xe を見ても、大した情報が書いていない・・・
※ServerNameを設定しろって警告がありましたが、こちらは起動とは関係無し
httpd.service: Main process exited, code=exited, status=1/FAILURE
httpd.service: Failed with result 'exit-code'.
Failed to start The Apache HTTP Server.
- /var/log/httpd/error_log を確認したら下記情報が出ていたのでググったが、関係なさそう・・・
SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
- /var/log/httpd/ssl_error_log を確認したところ、下記ログが!
SSL Library Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
server.key を、参考にしたページどおり2024byteで作成していたのですが、こちらを2048byteで作成したところ、問題なくApacheが起動するようになりました!
HTTPSで接続しても、警告は出ますがちゃんとApacheの画面が表示されました!
感想
mod_SSL を入れたら、ssl_error_log なんてのが出るようになるんですね。。
journalctl のエラーログから解決策を探していたので、こちらのログを見つけるまでに時間がかかってしまいました・・・。
トラブルシューティング時はログを見るのが基本だと思いますが、どのようなログがどこに出るのかちゃんと把握していないとキツイですね。。引き続き構築頑張ります。。