Certbot 無料でサーバー証明書を取得する Let's Encrypt
本日は、サーバー関係のネットワークネタである。
署名とか証明書ってSSLの世界では"しょっちゅう"出てくる話。本ブログでも、コードサイニングの記事でもちょっと触れている。
普通、サーバー証明書を手に入れるのには、お金がかかる。
AWSなら無料っていう話もあるが、実は、ロードバランサー入れないとSSL証明書を使えないので、別途ロードバランサー代がかかってしまう。なので、完全に無料ではない。ロードバランサー入れたら多分、月に数千円はかかるかも。
まぁ、普通に証明書を取ろうと思ったら、1年間で、ナン万円もかかってしまうし、手続きとかも面倒。なので、それに比べたら安いかも。
かくいう私なのだが、AWSにサイトはあるが、ロードバランサー入れるほどの規模じゃないしなぁ、別にHTTPSじゃなくてもいいや。くらいでいたのだが、何かとこのご時世「HTTPSじゃないとダメ」みたいな風潮がある。例えば、ブラウザに安全ではありません、みたいに表示されたり、OIDCプロバイダーを稼働させるにはHTTPSじゃないとダメとか。
でもって、何とかSSL証明書が手に入らないものかと調べると、Let's Encriptというシロモノを発見。まぁ、検索して見ればすぐにわかる。
Let's Encriptを使うとなんと「無料でサーバー証明書が手に入る」というのである。
本当に?AWSみたいに、何かのサービスに入らないとダメで別途料金がかかるのでは?と勘ぐってしまうが、ちょっとやってみることにした。
まずは、certbot、pythonとgitが必要とのこと。certbotはamazon linuxのyumリポジトリにはなかったので、yumでインストールできなかった。しばらく放置していたからなぁ。amazon linux 2のEC2インスタンスを新規に立ち上げて、そこでやってみることにしよう。インスタンスタイプは、ARMのやつ(tg4.nano)にして更なるコストダウンを計ることに。インテルのバイナリじゃないとダメなモジュールも使ってないし、ARMでOK(前にARMはビッグエンディアンと書いた気がするが、Intelと同じリトルエンディアンみたい。ちょっとここで訂正したいと思う)。
amazon-linux-extraコマンドで色々インストール。詳細は、省略。検索してみてね。
certbotがインストールできたら、コマンドを実行。
連絡先用のメールアドレスとドメイン付きのホスト名を入力すれば登録完了。あっけなく終わる。
certbotを実行するホストはDNSでちゃんと名前が検索できてIPアドレスに変換できる必要がある。ちゃんとインターネットに公開されているサーバーで実行しないとダメということらしい(DDNS+自宅サーバーでcertbotができるかどうかは不明)。
有効期限が90日と短いので、cronで定期更新をかけておく。こちらもcertbotコマンドを実行することで更新ができる。
取得したサーバー証明書やプライベートキーは、/etc/letsencrypt/live/ドメイン名 以下のディレクトリに入っているので、apacheやnginxの設定ファイルを編集して証明書関係のファイルを入れ、再起動してやればSSLに対応できる。
サーバーがAWSのEC2に置いてある場合はセキュリティグループの設定で、HTTPSを開けておかないと通信できないので注意。
EC2インスタンスで(iptablesなんかの)ファイアウォール入れていたら、そこにもルールを入れる必要がある。自分のところではやってないので、EC2側では何もやっていない。
ここまでやるのに、ほんの10分くらいか。本当にSSL化できたのか...
ブラウザからhttps://asai-atsushi.com でアクセスしてみると、ちゃんと表示されるではないの。マジか。
これで、OIDCやサーバープッシュの試験ができるかも。やったね。
Let's Encryptでのサーバ証明書が有効期限切れ
Certbot 無料でサーバー証明書を取得する Let's Encrypt
TLSのバージョンアップ AWSのALB使っているんだけど
投稿者プロフィール

最新の投稿
コンピューター関係の記事2025年4月26日アイキャッチ画像にSQLアイコンとJSONアイコンが欲しい
コンピューター関係の記事2025年4月23日AdSense審査に無事パス
コンピューター関係の記事2025年4月22日SSブログ復活
コンピューター関係の記事2025年4月22日SSブログが無くなった余波は大きい