今までと同じurlでhttpsでwebサーバを動かすまで

2023/12 の作業


Elastic IP の移動、nginx 、cron 、certbot のインストールと簡単な設定までを行う。


Elastic IP を移動

今までのインスタンスは捨てるので、IPを移す。


Elastic IP アドレスの関連付け解除

今までのインスタンスに関連付けてある IP を 「Elastic IP アドレスの関連付け解除」で解除。(解放じゃない)

eip-replacement1






















Elastic IP アドレスの関連付け

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

eip-replacement2






















インバウンドルールで 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 EncryptLet,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




おしまい。