今までと同じurlでhttpsでwebサーバを動かすまで
- 2024年1月12日
2023/12 の作業
Elastic IP の移動、nginx 、cron 、certbot のインストールと簡単な設定までを行う。
Elastic IP を移動
今までのインスタンスは捨てるので、IPを移す。
Elastic IP アドレスの関連付け解除
今までのインスタンスに関連付けてある IP を 「Elastic IP アドレスの関連付け解除」で解除。(解放じゃない)

Elastic IP アドレスの関連付け
新しいインスタンスに解放した IP を 「Elastic IP アドレスの関連付け」でインスタンスに関連付ける。

インバウンドルールで HTTP と HTTPS を許可
nginx インストール
昔インストールしたの(NGINXを入れる、NGINXをもうちょっと設定)を参考に入れる。
# インストールして $ sudo dnf install nginx.aarch64 # サービス登録して $ sudo systemctl enable nginx.service # 設定ファイルの置き場所を作って $ cd /etc/nginx $ sudo mkdir sites-available $ sudo mkdir sites-enabled # sites-enabled の設定を読み込む様に nginx.conf を編集 $ vi /etc/nginx/nginx.conf # とりあえず、http で動く様に設定ファイルをして、 $ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 起動 $ sudo systemctl start nginx.service
cron インストール
certbot で証明書を自動で更新する為に、cron が入ってないので、 cron を入れる。
# インストールして $ sudo dnf install cronie.aarch64 # サービス登録して $ sudo systemctl enable crond.service # 起動 $ sudo systemctl start crond.service
certbot インストール
certbot のページの nginx on pip の内容、昔のページ(Let,s Encrypt、Let,s Encrypt 証明書の更新)を参考にインストール。
# 必要なライブラリを入れて $ sudo dnf install augeas-libs # certbot 用の venv を作って $ sudo python3.11 -m venv /opt/certbot/ # pip を upgrade $ sudo /opt/certbot/bin/pip install --upgrade pip # パッケージをインストールして $ sudo /opt/certbot/bin/pip install certbot certbot-nginx # /etc/sudoers の secure_path が /usr/local/bin に通っているので、リンクして $ sudo ln -s /opt/certbot/bin/certbot /usr/local/bin/. # nginx に letsencrypt の証明書を設定 $ sudo certbot --nginx # 一応 nginx を起動 $ sudo systemctl restart nginx.service
これで、同じ url に https でアクセスできれば完了。
証明書の自動更新を cron に登録
$ echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab
おしまい。