さくらVPS( Cent OS 6.9 )に無料SSLのLet’s Encrypt(レッツエンクリプト)のインストールと更新設定の内容をメモします。
パッケージアップデート
sudo yum update
Python2.7インストール
インストール
sudo yum install centos-release-scl sudo yum install python27 python27-python-tools sudo yum install dialog scl enable python27 bash
バージョン確認
python -V
上記コマンドで下記が表示され Python2.7 が入っていることが確認出来ましたが、なぜか Python2.6 に戻ってしまう現象がありました。
Python 2.7.16
Let’s Encrypt ダウンロードと証明書発行
ダウンロード
cd /var/ git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt
証明書発行
./certbot-auto certonly --webroot -w /home/sites/www.analyzegear.co.jp/public_html/ -d analyzegear.co.jp,www.analyzegear.co.jp -m メールアドレス
正常に証明書の発行が完了すると次のメッセージが表示されます
IMPORTANT NOTES: Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/analyzegear.co.jp/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/analyzegear.co.jp/privkey.pem Your cert will expire on 2020-03-08. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew all of your certificates, run "certbot-auto 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
Virtual Hostの設定
<VirtualHost *:443>
ServerName analyzegear.co.jp:443
DocumentRoot /home/sites/analyzegear.co.jp/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/analyzegear.co.jp/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/analyzegear.co.jp/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/analyzegear.co.jp/chain.pem
</VirtualHost>
Apacheリロード
誤った設定をしていないか確認
service httpd configtest
下記のように「OK」が返ってこれば大丈夫です。
Syntax OK
リロード
service httpd reload
Let’s Encrypt の証明書を cron で自動更新
cron 設定ファイルを開く
crontab -e
更新用コマンド登録
毎月1日の5時に実行するように登録
0 5 1 * * scl enable python27 "/var/letsencrypt/certbot-auto renew --agree-tos && service httpd reload"
正常に登録されれば
crontab: installing new crontab
とメッセージが表示されます
はまったところ
Pythonのバージョンが 2.7にならない(固定出来ない)
scl enable python27 bash
実行後は、Python 2.7 に変わるのだが、すぐに Python 2.6 に戻ってしまった
2.6 のままコマンドを実行すると
/var/letsencrypt/certbot-auto WARNING: couldn't find Python 2.7+ to check for updates. /var/letsencrypt/certbot-auto: line 919: python3: コマンドが見つかりません
とエラーが出てしまう。
対処法
/var/letsencrypt/certbot-auto renew --agree-tos && service httpd reload
で実行しようとしていたものを
scl enable python27 "/var/letsencrypt/certbot-auto renew --agree-tos && service httpd reload"
Python 2.7 にしてから実行するようにしました。
コメント