CertbotによるLet’s Encryptの証明書の取得

develop/server
概要

WebサーバーでのHTTPS通信を実現するためにLet’s Encryptの証明書の取得方法を記します。

WebサーバーでのHTTPS通信を実現するには、Webサーバーの公開鍵証明書 (証明書) と秘密鍵を用意する必要があります。秘密鍵は自分で用意できるとしても、公開鍵証明書は第三者の認証局 (CA: Certificate Authority) に発行してもらう必要があります。一般的には、証明書の発行は有料であるため、ネックでした。

これを回避するために、自己署名証明書という自分で発行した証明書を開発環境で使うことがあります。ただ、当然ながら自分で発行している以上信頼性に乏しく、自己署名証明書で運用されているWebサイトは、Webブラウザーが警告を出します。そのため、本番環境での運用には使えません。

こういう事情もあり、WebサイトのHTTPS化はなかなかやっかいな問題でした。

そんな中、2015年頃からHTTPSによる安全なWebを普及させるためにLet’s Encryptという無償で証明書を発行するプロジェクトが始まりました。

Let’s Encryptを使うことで個人でもお金をかけずに証明書を発行でき、WebサイトのHTTPSを低コストで実現できます。そこで、Let’s Encryptでの証明書の発行方法を調べて成功したので手順を記します。

条件

Let’s Encryptによる証明書の発行はACMEというプロトコルに沿って実施されます。基本的にはACME対応クライアントソフトを使ったコマンド実行で行います。

その他、「Challenge Types – Let’s Encrypt – Free SSL/TLS Certificates」に書かれている通り、Let’s Encryptのサーバーから通信を行います。

そこで、以下の2点が前提として必要になります。

Let’s Encryptでの証明書発行の前提条件
  1. http://<YOUR_DOMAIN>/.well-knwon/acme-challenge/にHTTP (ポート80) でアクセス可能
  2. サーバー上でシェルコマンドを実行可能
  3. 証明書の有効期限が90日なのでそれまでに更新が必要

これを念頭においておきます。

導入

ACMEクライアントとして、公式で推奨されているCertbotを使用します。

まず、

この投稿は Gold and Silver の会員限定 (月額Free=0円、Silver=1100円、Gold=3300円) です。記録が目的であり、元投稿の削除・炎上回避、運営費・GNU socialの開発資金などのため会員限定にしています。

このサイトでは分散SNSの話題を1年以上毎日更新しており、情報量、更新頻度は日本一だと思います。最新動向・詳細情報を把握したい人は、会員登録/ログインをお願いします (About Member)。

Comments

Copied title and URL