さくら VPS メ-ル サ-バ
SSL 証明書の更新
ここまでで SSL 証明書の取得ができました。
引き続き、SSL 証明書の更新をしていきます。
WEB サ-ビスにおける Let’s Encrypt の SSL 証明書の更新では3ヶ月ごとの更新
がうまくいくのですが、メ-ルサ-バでの更新はうまくいかないようです。
SSL 証明書の更新
を参照。
そこで、あらかじめ更新用ファイル ssl_sc.sh を作成しておき、これを一定日時に実行して、
SSL 証明書の更新を行なうことにします。
更新用ファイル作成
SSL 証明書の更新用ファイル ssl_sc.sh を作成していきます。
まずは bash ファイルを作成します。
このファイルを実行すると SSL 証明書が更新されます。
ファイル内容は、まず最初に bash ファイルのある場所
#!/bin/bash
を指定します。
なお、bash ファイルのある場所は
yamada@ik*-***-*****:~$ which bash
で確認することができます。
次に、
SSL 証明書の取得その2
で示した以下内容を入力します。
certbot certonly --standalone -d mail.70vps.net --email ******@70vps.net --pre-hook 'service apache2 stop' --post-hook 'service apache2 restart'
を1行で入力します。
email 設定は yahoo 宛だとうまく送信できないようです。
sudo は必要ありません。
これだけです。
まとめると以下のようになります。
#!/bin/bash
certbot certonly --standalone -d mail.70vps.net --email ******@70vps.net --pre-hook 'service apache2 stop' --post-hook 'service apache2 restart'
作成できたら c:\vb_public_html に保存します。
ファイル名は適当に ssl_sc.sh とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
作成した ssl_sc.sh ファイルをユ-ザ-ディレクトリ
/home/yamada/public_html
にアップロ-ドします。
更新用ファイル確認
SSL 証明書の更新用ファイル ssl_sc.sh の動作確認をします。
まずは、パ-ミッションを 755 とし、すべてのユ-ザが読取りと実行ができ、
所有者は書込みもできるようにします。
yamada@ik*-***-*****:~$ chmod 755 public_html/ssl_sc.sh
次に、ssl_sc.sh を実行します。
下記のように実行されれば OK です。
yamada@ik*-***-*****:~$ sudo public_html/ssl_sc.sh
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Running pre-hook command: service apache2 stop
Renewing an existing certificate
Running post-hook command: service apache2 restart systemctl restart postfix dovecot
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.70vps.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mail.70vps.net/privkey.pem
Your cert will expire on 2021-12-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- 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
なお、この更新ファイルは、5回/週しか実行できません。
うまくいかないからといって何回も実行しないでください。
更新ファイル自動実行
SSL 証明書更新ファイルを自動実行します。
cron を使用すると指定したタイミングでコマンドを自動実行してくれます。
まずは、crontab ファイルを作って、実行指定時間を設定します。
yamada@ik*-***-*****:~$ crontab -e
はやってはいけません。
/var/spool/cron/crontabs/yamada
のなかに、crontab ファイルができてしまい、yamada には root 権限がないので、
権限が必要な ssl_sc.sh を実行することができません。
yamada@ik*-***-*****:~$ sudo crontab -e
として、
/var/spool/cron/crontabs/root
のなかに、crontab ファイルを作成します。
yamada@ik*-***-*****:~$ sudo crontab -e
GNU nano 4.8 /tmp/crontab.htySla/crontab
0 * * * * cd /opt/jp-secure/siteguardlite;./siteguardlite_statistics.sh
0 0 * * * cd /opt/jp-secure/siteguardlite;./dbupdate_waf
# 追加 28日3時0分 実行
0 3 28 * * /bin/bash /home/yamada/public_html/ssl_sc.sh
0 3 28 * * /bin/bash /home/yamada/public_html/ssl_sc.sh
を最後の行に追加し、編集が終わったら
Ctrl + o
Enter
Ctrl + x
で終了します。
yamada@ik*-***-*****:~$ sudo cat /var/spool/cron/crontabs/root
でファイル内容を確認します。
これでスケジューリングは完了です。
指定時刻になれば、何事もなく ssl_sc.sh が立ち上がり自動実行されます。
更新ファイル自動実行確認
自動更新ファイル ssl_sc.sh 実行結果確認をします。
yamada@ik*-***-*****:~$
sudo openssl s_client -connect mail.70vps.net:25 -starttls smtp | openssl x509 -noout -dates
とすると実行結果を確認することができます。
さくら VPS ubuntu 20.04 LTS の場合
OpenSSL 1.1.1f 31 Mar 2020
がインスト-ル済みでした。
ただし、現在は脆弱性改善のため
1.1.1g にアップデ-トされています。
インスト-ルはちょっと面倒です。
コマンド内容を簡単に説明します。
まずは、openssl の s_client 命令で
指定サーバ mail.70vps.net の25番ポ-トに smtp tls で接続
その後、X509 公開鍵証明書に関する操作を行います、
サーバー証明書の内容は出力せず、有効期限を表示します。
結果は次のように出力されます。
yasuhiro@ik*-***-*****:~$
sudo openssl s_client -connect mail.70vps.net:25 -starttls smtp | openssl x509 -noout -dates
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = mail.70vps.net
verify return:1
notBefore=Aug 27 18:28:25 2021 GMT
notAfter = Nov 25 18:28:23 2021 GMT
250 CHUNKING
そして、日付の赤字部分が最新の日付になれば OK です。
ここまでで SSL 証明書の更新ができました。
引き続き、メ-ルユ-ザの追加を行ないます。