AWS EC2 Let's Encrypt 無料SSL証明書設定方法
AmazonLinux2023で今回は無料SSL証明書設定方法を記載いたします。
※事前に対象EC2サーバーの「パブリック IPv4 アドレス」をDNSに登録しましょう。
Route53の登録方法はこちらになります。
1. 対象のEC2サーバーにログインして下記のコマンドを入力し実行してください。
コマンド | 説明 |
---|---|
$ sudo -i | rootユーザーに昇格いたします。 |
# yum install -y httpd | Apacheをインストールいたします。 |
# yum install -y mod_ssl | mod_sslをインストールいたします。 |
# yum install -y certbot | certbotをインストールいたします。 |
# systemctl enable httpd | サーバー再起動時に自動起動いたします。 |
# systemctl start httpd | Apacheを起動いたします。 |
2. SSL証明書を発行いたします。(以前に対象のEC2サーバーのパブリック IPv4 アドレスをDNSの登録してください。)
※DNSにサーバーのIPアドレスとドメイン名が登録されてないとエラーになる場合あります。
下記のコマンドを入力し実行してください。
コマンド | 説明 |
---|---|
# certbot certonly --webroot -w /var/www/html -d www.d1j.jp --key-type rsa --cert-name www.d1j.jp --register-unsafely-without-email --agree-tos -n | ドメイン名はDNSに登録したドメインを入力してください。 -d のあとは利用したいドメイン名(FQDN)になります。 /var/www/htmlの配下にLet's Encrypt認証ファイルが作成されます。 Apacheは起動状態にいたします。(80番ポート利用します。) --cert-nameは内部ファイルのラベルになります。 |
コマンド |
---|
# certbot certonly --webroot -w /var/www/html -d www.d1j.jp --key-type rsa --cert-name www.d1j.jp --register-unsafely-without-email --agree-tos -n Saving debug log to /var/log/letsencrypt/letsencrypt.log Account registered. Requesting a certificate for www.d1j.jp Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/www.d1j.jp/fullchain.pem Key is saved at: /etc/letsencrypt/live/www.d1j.jp/privkey.pem This certificate expires on 2025-07-26. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le |
3. viでssl.confを修正いたします。
コマンド | 説明 |
---|---|
# vi /etc/httpd/conf.d/ssl.conf | viでssl.confを修正いたします。 |
SSLCertificateFile /etc/letsencrypt/live/www.d1j.jp/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.d1j.jp/privkey.pem | SSLCertificateFileとSSLCertificateKeyFileの部分を さきほど発行したSSL証明書発行の場所に修正いたしましょう。 |
4. Apacheの再起動を行います。以下のコマンドを入力し実施してください。
セキュリティグループはこちらを参考にしてください。(80番、443番ポートは開放してください。)
コメント | 説明 |
---|---|
# systemctl restart sshd | mod_sslをインストールいたします。 |
5. 最後にブラウザで対象ドメインにアクセスしてみましょう。

5. Let's EncryptのSSL証明書は、有効期限が90日間になっております。
下記のコマンドを実施してください。cronがうまく動作しない場合はサーバーの再起動を実施してください。
※certbot renewは回数制限があります。1日5回程度になります。注意してください。
コマンド | 説明 |
---|---|
$ sudo -i | rootユーザーになります。 |
# timedatectl set-timezone Asia/Tokyo # date | 日本時間に変更いたします。 dateコマンドで時間を確認いたします。 |
# yum install cronie -y | cronをインストールいたします。 |
# systemctl enable crond | サーバー再起動時に自動起動いたします。 |
# systemctl start crond | cronを起動いたします。 |
# crontab -e | cronを編集いたします。 |
00 3 1 * * /usr/bin/certbot renew --force-renew --deploy-hook "systemctl restart httpd" | viで記述いたします。毎月1日の3時00分にSSL証明書を更新いたします。 一緒にApacheの再起動も実施いたします。 |
以上でEC2 Let's Encrypt 無料SSL証明書設定方法を完了いたしました。