2020年6月1日以降、ACMEv1での更新が停止されるそうです。
ACMEv2へ移行しなければならなくなりました。
LinuxやFreeBSD等では、certbotを使用していると思います。
certbotは、0.22以上だと対応しています。
具体的な対応は、以下で良さそうです。
certbot renew --server https://acme-v02.api.letsencrypt.org/directory .....
赤字のとこを追加すれば、ACMEv2になるようです。
GoGetSSLで、認証していたのも3年前
今では、無料SSL認証が主流ですね。
ということで、当サイトにも、その波が押し寄せてきました。
無料で誰でも取れるSSL認証なんて、何が信用となるのかわかりませんが、とりあえず無料で暗号してもらえるので使うことにしましょう。
で、そのサービスが、Let's Encryptです。
無料SSL認証の標準といったところですね。
こいつは、面倒な更新を自動でやってくれるとこが良いんです。
でも、その仕組を組み込むのは、サイト管理者ですけどね。
pythonを使って、ごにょごょしてるっぽいです。
では、我が FreeBSD 11.1 に仕込んでみましょう。 <- 11.1って、だいぶ、アップデートしました。
1.
まず、ボットと呼ばれる、ごにょごにょするやつをインストールします。
/usr/ports/security/py-certbot
2.
次に、どっかから、自分のドメインが外部ネットからちゃんと参照出来るかを証明する必要があります。
今からコマンドを実行するんですが、そのコマンドを実行するサーバが、外部ネットのポート80を受け付ける必要があります。
なので、80を使っているようなやつ、例えば、ApacheとかNginxを停止する必要があります。
例)
service apache24 stop
で、停止したことを確認後、以下のコマンドを実行します。
certbot certonly --standalone -d [ドメイン]
すると、なんてことでしょう
ここに証明書が配布されているじゃありませんか。
/usr/local/etc/letsencrypt/live/[ドメイン]
3.
後は、出来上がった鍵を仕込めば取りあえず、完了です。
Apache24
例)
SSLCertificateFile /usr/local/etc/letsencrypt/live/[ドメイン]/fullch
ain.pem
SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/[ドメイン]/pri
vkey.pem
SSLCertificateChainFile /usr/local/etc/letsencrypt/live/[ドメイン]/
chain.pem
4.
で、この認証は、3ヶ月で切れます。
みじかっ
1年に3回も更新するのめんどうですよね
ということで、cronで、更新するようにしておきます。
毎日、2時に証明書の確認を行い、切れていたら更新してapacheを再起動します。
例)
0 2 * * * /usr/local/bin/certbot renew --post-hook "service apache24 restart"
もしくは、
0 2 * * * /usr/local/bin/certbot renew --pre-hook 'systemctl stop apache2' --post-hook 'systemctl restart apache2'
5.
さらに、セキュアな設定です。
当サイトのドメインは、myDNS.jp を使っています。
今回、Let's Encryptにて、SSL認証させてもらうことにしました。
という状況をDNSに定義することで、さらに信頼性が向上します。
ドメイン設定に、CAAを追加しておくことで、Okです。