はいどうもマッスルハンターです。
久々のまともな投稿です。
最近httpだとブラウザに怪しげな文言が表示されますよね。
こういうやつ↓
やはりちゃんとしたサイトを運営しようとするとこれはよろしくないので
長年放置していたhttps化をやってやりました。
手順としてはCertbotというツールが公開されているのでこれをインストールするだけって感じでとても簡単でした。
Let's Encryptっていうのがアメリカの無料の認証局だそうなんです。
企業の寄付で認証局運用のコストをなんとかしているそうです。
(詳しく知りたい人は別途調べてください)
なのでひとまずこちらを利用しようということで開いてみましたら
Let's Encrypt お優しい事に日本語でした。
こちらの証明書は90日毎に更新しなきゃないそうなんですが
certBotっていうのを使えば自動化できるとのことだったので
certBotさんをお訪ねして下記キャプチャ部分のsoftwareとsystemを選択すると設定方法の書いてあるページに飛びますのでその通りに設定するだけでございます。
私の場合はsoftwareはnginx
systemはCentOS7だったのでCentOS/RHEL 7を選択しました。
記載の手順通りですが
- SSH into the server
サーバーにSSHでログインします。
- Enable EPEL repo
EPELレポジトリが有効でなければ有効にします。
CentOS7ならこんな感じっぽいyum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
その他はこちらからどうぞ
https://fedoraproject.org/wiki/EPEL#Quickstart - Install Certbot
Certbotさんをインストールします。
sudo yum install certbot python2-certbot-nginx
- Choose how you'd like to run Certbot
- Either get and install your certificates...
certbotさんにnginxさんをごにょごにょして頂きます。
sudo certbot --nginx
- メアドとか聞かれます。たぶん期限切れが近くなると通知とかくんのかなぁくらいに捕らえました。本当のところは英語を解読してください。
- 最初nginx側でドメインを設定していなかったのでなんたらかんたら言われました。
- ngnx.confにserver_name を設定してからやり直したらよさげでした。
- 上記コマンド実行後にnginx.confを確認すると
- # managed by Certbotというコメントがついた行が追加されてました。
- 証明書のパスとかも書き込んどいてくれてるみたいなので特にいじる必要はなかったです。
- ここでいったんhttpsでアクセスし、無事に閲覧可能な事を確認しました。
- Either get and install your certificates...
- Set up automatic renewal
これはたぶん証明書が90日で切れるので更新を自動かする処理をcronに登録しておけってことだと思われます。
いつの間にか切れてると面倒なので登録しておきましょう。
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null