CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では現行の Linux ディストリビューションを利用してください。
Apache HTTP Server の設定、ディレクティブ、モジュール、運用項目を確認したい場合の参考書籍です。古い 2.0 / 2.2 系対応書籍のため、価格や在庫、現在の Apache 2.4 との差分はリンク先や公式ドキュメントで確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
CentOS 7 の Apache httpd で Let’s Encrypt の証明書を取得し、HTTPS を有効化する手順です。既存の CentOS 7 環境で公開 Web サーバーを保守する場合の設定として整理します。
Let’s Encrypt を使う場合は、証明書の取得だけでなく、HTTP 到達性、ドメインの名前解決、更新処理、Apache 再読み込みまでを一連の運用として考える必要があります。
コマンドはコピペしやすい形を優先しています。ただし、長大な既存設定ファイルを部分的に変更する箇所では、既存値との重複を避けるため、バックアップを取ったうえで設定断片を確認して反映します。
certbot のインストール
yum install certbot python-certbot-apache証明書の取得
webroot 方式で証明書を取得します。対象ドメインがサーバーへ到達でき、HTTP で認証用ファイルを取得できる必要があります。
certbot certonly --webroot -w /var/www/html -d www.mydomain.com -d mydomain.com発行されたファイルの確認
Let’s Encrypt の live ディレクトリには、実体ではなく archive 配下へのシンボリックリンクが作成されます。Apache 側では live 配下を参照します。
ls -l /etc/letsencrypt/live/www.mydomain.com
cert.pem -> ../../archive/www.mydomain.com/cert1.pem
chain.pem -> ../../archive/www.mydomain.com/chain1.pem
fullchain.pem -> ../../archive/www.mydomain.com/fullchain1.pem
privkey.pem -> ../../archive/www.mydomain.com/privkey1.pemssl.conf の設定
ssl.conf は既存の TLS 設定を含むため、証明書参照先だけを確認して反映します。
cp -a /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak
cat <<'EOF'
# /etc/httpd/conf.d/ssl.conf の該当項目を以下のように整理する
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem
EOFApache の再起動
systemctl restart httpd
systemctl status httpd更新の自動化
証明書は期限があるため、自動更新と Apache の再読み込みを運用に組み込みます。
mkdir -p /root/bin
cat <<'EOF' > /root/bin/letsencrypt
#!/bin/sh
certbot renew 2>&1 | mail -s "Let's Encrypt update information" root && systemctl restart httpd
EOF
chmod 700 /root/bin/letsencrypt
cat <<'EOF' > /etc/cron.d/letsencrypt
00 04 01 * * root /root/bin/letsencrypt
EOF確認するポイント
- 対象 FQDN が正しく名前解決できるか。
- HTTP-01 認証に必要な 80/tcp が到達できるか。
- 証明書更新後に Apache が再読み込みされるか。
- メール通知やログで更新失敗を検知できるか。
Let’s Encrypt は便利ですが、更新失敗に気づけない構成だと証明書期限切れで停止します。公開 Web サーバーでは、発行手順よりも更新監視の方が実運用では重要です。
Let’s Encrypt 運用として確認する
Let’s Encrypt は証明書取得よりも更新運用が重要です。自動更新、reload、名前解決、HTTP-01 / DNS-01 の方式を確認します。
- 証明書の有効期限。
- renew hook。
- 80/tcp または DNS 更新権限。
- 更新失敗時の通知。



