AWS

AmazonLinux2でLet’s Encryptを使う(snapd編)

AmazonLinux2 に限った話ではないですが、2021 年に入ってから新規に Let’s Encrypt を導入する方法が変わりました。

以下の AmazonLinux へ導入した時の記事はもう役に立たなくなりますね。

AmazonLinuxでLet's Encryptを利用するSSL(https)でのサイトアクセスが当たり前の時代になり(Googleの動向で)、SSL のサーバ証明書を設定する機会も増えました。...

近年は docker の利用機会が多く(AWS だと ECS とか EKS)、EC2 で新規にサイト構築するのが久し振りということもあり、完全に情報を逃していました。

今回は、AmazonLinux2 で Let’s Encrypt が利用できるように設定方法を紹介していきます。

従来の方法だとエラーが発生

EC2 を構築する時は、何年も前から使用している簡単な手順書(コマンドラインの羅列)

別の記事で詳しく書きますが、今回 AmazonLinux2 を触るのが初めてだったこともあり、最初は何のエラーかわかりませんでした。

certbot-auto はダウンロードできるのに、コマンド実行時に怒られます。

要は、こういうことですね。

このシステムではcertbot-autoが非推奨であるため、ブートストラップをスキップします。お使いのシステムはcertbot-autoでサポートされなくなりました。Certbotをインストールできません。https://certbot.eff.org/にアクセスして、他の選択肢を確認してください。

公式サイトの手順に従う

公式サイトでは、以下の 2 つの情報を選択すると最適なインストール方法を教えてくれます。

・ソフトウェア(Webサーバなど)
・システム(OSなど)

今回は AmazonLinux2 上で Nginx を動かすので、Software のプルダウンで「Nginx」、System のプルダウンで AmazonLinux2 に近そうな「CentOS/RHEL 7」を選択しました。

AmazonLinux2でLet's Encryptを使う(snapd編)

snapdを導入する

公式の説明に従うと、snapd で certbot をインストールしするということですね。

ただ、AmazonLinux2 で snapd をインストールする方法は書かれていないので、snapd のパッケージを管理しているリポジトリを設定します。

この方法は以下のサイトに書かれていました。助かります。

これで snapd のインストールができます。

snapd が最新バージョンか確認します。

certbotのインストール

certbot をインストールします。

これで SSL のサーバ証明書を発行する準備ができました。

証明書発行のコマンドは従来のもので問題ありませんでした。
(私はいつも以下のコマンドで発行しています)

証明書が無事に発行できたら、Nginx の定義を編集して再起動します。

まとめ

AmazonLinux2 における、snapd を使った certbot の利用方法を紹介しました。

プライベートな AWS 環境のメンテナンスを怠っていたということもあり、この手の情報のキャッチアップが足りていなかったのはショック。

冒頭でも書きましたが、AmazonLinux1 の AMI が 2021 年から提供されなくなったことも知らなかったため、今回は少し環境構築に苦戦することになりました。

ただ、その苦労の甲斐もあって certbot が Python ではなく snapd 管理下になったのは不幸中の幸い。

Python やら pip やらで certbot には悩まされた記憶しかありませんから・・・。