Let’s Encrypt 導入手順(Apache・Amazon Linux 2023対応・詳細版)

2025/04/25

Let’s Encrypt とは?

Let’s Encrypt は無料で利用できるSSL/TLS証明書を提供する認証局(CA)です。
WebサイトのHTTPS対応に最適で、自動更新も可能です。


前提条件チェック

  • サーバ:Amazon Linux 2023
  • Webサーバ:Apache(httpd)を使用
  • ドメイン:取得済みで、対象サーバにAレコードが向いている
  • root権限:sudoが使えるユーザーで作業(ALの場合はデフォルトのec2-userで可)

1. Apache のインストールと起動確認

sudo dnf install -y httpd
sudo systemctl enable httpd
sudo systemctl status httpd

ブラウザで http://<ドメイン> にアクセスし、Apacheのテストページが表示されるか確認。


2. Certbot と前提パッケージのインストール

sudo dnf install -y mod_ssl
sudo dnf install -y certbot python-certbot-apache

3. 証明書の取得

以下のコマンドを実行します(ドメイン名の例→www.hogehoge.com):

certbot certonly --webroot -w /var/www/html/ -d <ドメイン名>

インストール時の質問と推奨回答例

質問内容推奨回答
メールアドレス通知用のメールアドレス任意(有効なもの)
利用規約に同意利用条件に同意しますか?Y
EFFのメールを受け取るか広報メール受信の是非N または Y (Nで問題なし)
ドメイン選択(※)対象ドメインの選択番号で選択
HTTP→HTTPSへリダイレクト(※)リダイレクト設定2(常時HTTPSを推奨)

(※)聞かれない場合あり


4. 証明書のファイルパス

証明書は以下のディレクトリに配置されます:

/etc/letsencrypt/live/<ドメイン名>/
ファイル名用途
fullchain.pemサーバ証明書(中間証明書込み)
cert.pemサーバ証明書
chain.pem中間証明書
privkey.pem秘密鍵

fullchain.pemがある場合は「cert.pem」「chain.pem」は不要です。
Apacheの設定ファイルにこれらを指定することで、手動でもSSLを適用可能です。


5. Apache 設定ファイルの修正

バックアップを取得してから以下ファイルを編集します:

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

以下のパスを配置された証明書ファイルのパスに修正:

SSLCertificateFile /etc/letsencrypt/live/<ドメイン名>/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン名>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<ドメイン名>/chain.pem

6. 自動更新設定(cron)

必要に応じてインストール:

sudo dnf install -y cronie

cron編集:

sudo crontab -u root -e

0 4 * * * certbot renew --quiet --deploy-hook "systemctl restart httpd"

※毎日午前4時に証明書更新コマンドを実施し、更新後にApache再起動を実施
 (–quietは出力を抑えるオプション)


7. Apache の再起動

sudo systemctl restart httpd

8. ブラウザ確認

https://<ドメイン> でSSL化されたサイトにアクセスできるか確認してください。


<追記> www無しのドメインにも証明書を適用する場合

追加用コマンドを実施する:

sudo certbot certonly --webroot -w /var/www/html -d <ドメイン(wwwあり)> -d <ドメイン名(www無し)>
> (E) を押す

エラー例と対応

エラー原因対応策
ポート80が使用中他プロセスが使っているApacheが動作しているか確認
ドメインが解決できないDNS未設定Aレコードの確認
Too many certificates短期間で取得しすぎ数時間待つか --staging オプションを使用

まとめ

  • certbot を使うとApacheに対して自動的にSSL証明書を設定可能
  • メールアドレス登録やHTTPSリダイレクト設定も対話式で簡単
  • 自動更新機構付きで運用負荷も低い

参考リンク

  • Certbot公式:https://certbot.eff.org/
  • Let’s Encrypt 公式:https://letsencrypt.org/docs/

コメントを残す

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