Help us understand the problem. What is going on with this article?

Let’s Encryptの使い方。standaloneとwebroot

More than 1 year has passed since last update.

Let's encrypt(Let's Encrypt 認証局)とは

まずはここから簡単に解説を。「無料のSSL」です。通常、年間3万円程度費用がかかるイメージでしたが、そのために普及が遅れてしまっては、インターネットの発展がなかなか進まない、ということもあってインターネット界隈の主要な会社たちが集まって、無料の認証局を作ろうということになりました。

以下、日本語訳抜粋。

Let's Encrypt を運営している Internet Security Research Group (略称:ISRG) は、アメリカ合衆国カリフォルニア州にある公益法人で、アメリカ合衆国内国歳入法 Section 501(c)(3) による非課税法人として、アメリカ合衆国内国歳入庁 (IRS) による承認を受けています。
インターネットを介した安全な通信を行う際の、経済面・技術面・教育面での障壁を減らすことが、ISRG の使命です。

※ココ最近、2018年3月時点で、ワイルドカード証明書が使えるようになりました。1つの証明書で複数のサブドメインを運用可能ということです。この設定方法については、また改めて書きます。

簡単な使い方については、Let's Encrypt 総合ポータルにあります。
けっこうドキュメント量が多いので、まず設定する前に、大事なポイントがあります。
そこで一番重要になるのは、証明書取得時、および更新時にサーバーを停止する必要があるかどうか、という点です。それが、standaloneだったりwebrootとなります。

standaloneとwebrootとは

Let's Encryptでの証明書はstandaloneとwebrootがあります。

standalone

standaloneって何なん?ってことで、
【Let's Encrypt 総合ポータル-ユーザーガイド-Standalone プラグイン】
ここに書いてあります。

これは、Let's Encryptのコマンドであるcertbot-autoがwebserverとしての機能も持っているため、それを使って設定するってことです。standaloneという名前の通り、webserverがなくても証明書の取得設定ができるよ、というものです。

standaloneの場合、このcertbot-autoが持っているweb serverを利用する、つまり、
設定するのに80(HTTP)と443(HTTPS)のポートを使用するので、すでにapacheやnginxでWebサーバが動いていると動きません。←ここ重要

ということは現在稼働しているウェブサービスを一度停止させる必要があり、停止させるということは、運用上の問題が出る場合があります。
そこでwebrootモードを使うのです。
稼働中のサービスを落とさずにSSL証明書の発行および更新ができるのです。

webroot

コマンドは、certbot-auto
です。古いドキュメントでは、letyencryptだったりcertbotだったりしますが、最新は、certbot-autoだと思ってくださればOKです。

私の場合は、certbot-autoを実行可能な、/usr/local/sbinに配置してどでも実行できるようにしました。

おっと、その前に、準備が必要です。
今回SSLを設定する必要のある、ドメイン名で(今回はnginx)にhttpでアクセスできる状態としておくことです。
DNSの設定と、nginx(apache)の設定が終わっていることが条件です。

コマンド実行の初回のみいろいろきいてくるのですが、コマンドは、新しいものを登録するときも一つだけ。以下。
rootで実行。

command
certbot-auto certonly --webroot -w /var/www/sample/public -d xxxx.sample.com

-w は、webrootのディレクトリを指定。この中にファイルを書き込みます。そのファイルをhttp(80)でアクセスするのでアクセスできる状態としておくこと。

-dは、ドメイン名。複数指定可能。複数指定するときは、-d xxx.sample.com -d xxx2.sample.comと書いていく。

実行するとメッセージがでてきて、FaildやErrorの文字がなくSuccessという文字が見えたら成功です。

以下の2つのファイルができているので、nginxやapacheの設定ファイルで読み込むように設定して、webserverをリスタートすればOKです。

/etc/letsencrypt/live/xxxx.ample.com/fullchain.pem
/etc/letsencrypt/live/xx2.ample.com/privkey.pem

f_uto
株式会社クオリアシステムズの代表をしております。 1名くらい社員募集しています。WEBシステム開発やゲーム開発できる方、連絡お待ちしております。ホームページ、FB、TWどこからでもお問い合わせください。
http://staff.qualias.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした