CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
CentOS 7 の Apache httpd で Let’s Encrypt の証明書を取得し、HTTPS を有効化する手順です。既存の公開 Web サーバーを保守する場合は、証明書の発行だけでなく、名前解決、HTTP 到達性、自動更新、Apache の再読み込みまでを一つの運用として確認します。
Let’s Encrypt は ACME によって証明書を自動発行します。webroot 方式では、対象ドメインの HTTP アクセスがこのサーバーに届き、認証用ファイルを外部から取得できることが前提になります。
前提を確認する
- 対象 FQDN がこのサーバーの公開 IP に名前解決されること。
- 80/tcp と 443/tcp が外部から到達できること。
- Apache の DocumentRoot が明確で、ACME 認証用ファイルを配置できること。
- CentOS 7 は保守対象の既存環境として扱い、新規構築の標準にはしないこと。
certbot をインストールする
yum install certbot python-certbot-apachewebroot 方式で証明書を取得する
既存の VirtualHost を大きく変えたくない場合は、webroot 方式で取得すると構成を読みやすく保てます。DocumentRoot は環境に合わせて変更します。
certbot certonly --webroot -w /var/www/html -d www.mydomain.com -d mydomain.com発行されたファイルを確認する
Let’s Encrypt の /etc/letsencrypt/live 配下は、実体ではなく archive 配下へのシンボリックリンクです。Apache からは通常 live 配下を参照します。
ls -l /etc/letsencrypt/live/www.mydomain.comcert.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.pemApache の TLS 設定を行う
ssl.conf は既存の TLS パラメータを含むため、丸ごと置き換えるより、バックアップを取ったうえで証明書参照先を確認して反映します。
cp -a /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bakServerName www.mydomain.com:443
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.pemApache の設定を検証して反映する
apachectl configtest
systemctl reload httpd
systemctl status httpd自動更新を確認する
Let’s Encrypt の証明書は期限が短いため、取得できたら終わりではありません。更新テストと、更新後に Apache が新しい証明書を読む流れまで確認します。
certbot renew --dry-run
systemctl list-timers | grep certbot確認するポイント
- 証明書の CN / SAN が公開 FQDN と一致しているか。
- HTTP-01 認証に必要な 80/tcp が到達可能か。
- 証明書更新後に Apache が再読み込みされる運用になっているか。
- 古い TLS 設定をそのまま使っていないか。必要に応じて現行の Apache / OpenSSL の推奨設定と照合すること。
まとめ
CentOS 7 の Apache で Let’s Encrypt を使う場合、重要なのは証明書取得コマンドそのものより、名前解決、HTTP 到達性、Apache 設定、更新運用を一体で確認することです。既存環境を読むときも、どの FQDN をどの DocumentRoot で認証し、どの証明書を Apache が参照しているかを追うと追いやすくなります。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。 - CentOS 7 ネットワーク設定 – network サービスと ifcfg の既存運用
Web / DNS サーバーの前提になる固定 IP や ifcfg 設定を確認します。 - CentOS 7 Apache TLS 設定 – 自己署名証明書で HTTPS 化する
内部向け TLS で自己署名証明書を使う場合の考え方です。
参考書籍
書籍
Apache HTTP Server の設定、ディレクティブ、モジュール、運用項目を確認したい場合の参考書籍です。古い 2.0 / 2.2 系対応書籍のため、価格や在庫、現在の Apache 2.4 との差分はリンク先や公式ドキュメントで確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。

