手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 7 Apache TLS 設定 – Let’s Encrypt で HTTPS 化する

CentOS 7 の Apache httpd で Let’s Encrypt の証明書を取得し、HTTPS を有効化する手順です。既存の CentOS 7 環境で公開 Web サーバーを保守する場合の設定として整理します。

Let’s Encrypt を使う場合は、証明書の取得だけでなく、HTTP 到達性、ドメインの名前解決、更新処理、Apache 再読み込みまでを一連の運用として考える必要があります。

コマンドはコピペしやすい形を優先しています。ただし、長大な既存設定ファイルを部分的に変更する箇所では、既存値との重複を避けるため、バックアップを取ったうえで設定断片を確認して反映します。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

参考書籍
参考書籍

暗号技術入門 第3版 秘密の国のアリス

公開鍵暗号、電子署名、証明書など、TLS や内部 PKI の前提になる暗号技術を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

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.pem

ssl.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
EOF

Apache の再起動

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 サーバーでは、発行手順よりも更新監視の方が実運用では重要です。

この手順は CentOS 7 設定マニュアル の一部として整理しています。

CentOS 7 Apache TLS 設定 – Let’s Encrypt で HTTPS 化する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る