61
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-16

#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

61
55
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?