Amazon(AWS)EC2 Let's Encrypt SSL / HTTPS設定方法
前提条件
Amazon(AWS)EC2サーバーでApache(Webサーバー)に
無料SSL証明書を利用したApache設定をご説明いたします。
| 項目 | 説明 |
|---|---|
| クラウド | Amazon Web Services(AWS) |
| サービス | EC2(Elastic Compute Cloud) |
| OS | Amazon Linux 2023 |
| Webサーバー | Apache HTTP Server 2.4系 |
| ドメイン | すでに取得済みのドメインをご利用ください。 |
| DNS | AレコードがEC2サーバーの「パブリックIPv4アドレス」に 設定済みであること。 |
| セキュリティグループ | 80番、443番ポートはかならず開放してください。 (80番を利用してSSL証明書を発行いたします。) |
事前に以下の記事を参考にサーバーとApacheの設定を完了してください。
mod_sslのインストール
1. 対象サーバーにログインしてください。
(事前にApacheのインストールは実施してください。)
mod_sslをインストールいたします。下記のコマンドを実施してください。
| コマンド | 説明 |
|---|---|
| $ sudo -i | rootユーザーに昇格いたします。 |
| # dnf install -y mod_ssl | mod_sslをインストールいたします。 |
certbotのインストール
2. certbotをインストールいたします。
下記のコマンドを実施してください。
| コマンド | 説明 |
|---|---|
| # dnf install -y certbot | certbotをインストールいたします。 |
Let's Encrypt SSL証明書の取得
3. SSL証明書を発行いたします。(EC2サーバーのパブリック IPv4 アドレスをDNSに登録してください。)
※DNSにEC2サーバーのIPアドレスとドメイン名が登録されてないとエラーになる場合あります。
下記のコマンドを実施してください。
| コマンド | 説明 |
|---|---|
| # certbot certonly --webroot -w /var/www/html -d www.kochiku.app --key-type rsa --cert-name www.kochiku.app --register-unsafely-without-email --agree-tos -n | ドメイン名はDNSに登録したドメインを入力してください。 -d のあとは利用したいドメイン名(FQDN)になります。 /var/www/htmlの配下にLet's Encrypt認証ファイルが作成されます。 Apacheは起動状態にいたします。(80番ポート利用します。) --cert-nameは内部ファイルのラベルになります。 |
4. viでssl.confを修正いたします。
下記のコマンドを実施してください。
| コマンド | 説明 |
|---|---|
| # vi /etc/httpd/conf.d/ssl.conf | viでssl.confを修正いたします。 |
SSLCertificateFile /etc/letsencrypt/live/www.kochiku.app/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.kochiku.app/privkey.pem | SSLCertificateFileとSSLCertificateKeyFileの部分を さきほど発行したSSL証明書発行の場所に修正いたしましょう。 |

5. Apacheの再起動を実施いたします。
下記のコマンドを実施してください。
| コメント | 説明 |
|---|---|
| # systemctl restart httpd | Apacheを再起動いたします。 |
ブラウザーでの動作確認
6. 最後にブラウザーで対象ドメインにアクセスしてみましょう。
Google ChromeでURLのアイコンをクリックして「この接続は保護されてます」が
表示されていれば問題ございません。

Let's Encrypt SSL証明書の更新
7. Let's EncryptのSSL証明書は、有効期限が90日間になっております。
下記のコマンドを実施してください。
cronがうまく動作しない場合はサーバー再起動を実施してください。
※certbot renew(--force-renew )は回数制限があります。
1日5回程度になります。注意してください。
| コマンド | 説明 |
|---|---|
| $ sudo -i | rootユーザーに昇格いたします。 |
| # timedatectl set-timezone Asia/Tokyo # date | 日本時間に変更いたします。 dateコマンドで時間を確認いたします。 |
| # dnf install -y cronie | 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の再起動も実施いたします。 |
以上で「Amazon(AWS)EC2 Let's Encrypt SSL / HTTPS設定方法」を完了いたしました。



