LoginSignup
12
12

More than 5 years have passed since last update.

Let's Encrypt!!

Last updated at Posted at 2016-01-29

Let's Encrypt

さぁ、暗号化を始めましょう!

・・・っていう勧誘ではなくて。

おそらくご存知の方が多いと思うのですが、Let's encryptという無料でSSL証明書生成しちゃおうぜプロジェクト(乱暴)というのがあります。
https://letsencrypt.org/

私自身で知ったわけではなく、こういうのあるから使ってみたら?って教えてもらったんですが。

いろいろと調べてみたところ、まぁ、普通に使えそうだな、と思ったので使ってみました。

仕組み?

Let's encryptを使う、というか、SSL証明書を発行してもらうには、SSL証明書を作りたいサーバーでLet'sEncryptクライアント(以下LEC)をインストールする必要があります。
何となくログを眺めてみてたところ、

  1. LECがCSRをよしなに作る。
  2. LECが DocumentRoot に適当なファイル(.well-known/ほげほげ)を生成する
  3. LECがどこか(おそらくLet's Encryptサーバー)にCSR送信して申請する
  4. 3.のときに合わせて2.で作ったほげほげのところを一緒にURLパラメータで送信する
  5. LEサーバーが指定されたファイルにアクセスしてくる
  6. LEサーバーが4.のレスポンスとしてアクセスした結果を返す
  7. LECが証明書作る

てな感じだと思いました。
※だいぶ適当なので信用しきっちゃダメですよ。

いわゆるファイル認証ってやつですね。
これ、大手さん、例えばSymantec, GeoTrustなどの証明書発行手順とほぼ同じだと思います。
クライアントがインストールしてあれば1つのコマンドで完全に自動化出来るのが大きいと思います。

構築した環境について

CentOS6.5 + Apache2.2.15

必要なもの

  • サーバー
  • 自前のWebアプリケーションサーバー(私はApacheですがNginxでもOKとか)
  • DNSレコード(AでもCNAMEでも可)編集権限
    LEサーバーはDNSレコードを引いてアクセスしてくるので、LECを実行したサーバーを向かせられないとダメです。
  • 「あ、やべ!」と思った時に対処できる落ち着き。(←大切)

環境の構築

一番最初に引っかかったこと。

私はCentOS6でこの作業やったのですが、CentOS5とか6とかはデフォルトPythonが2.6以下なんですよね。
Let's encryptのインストールにはPython2.7以上が必要そうです。

詳細な手順については・・・そのうち書きます。
メモがhistoryなもので分からない!!

SSL証明書作ります!

./letsencrypt-auto certonly -w /var/www/html -d hoge.fuga.com -m hogehoge@mail.com --agree-tos --webroot

この1コマンドでおしまい!
ね、簡単でsh(ry

後は /etc/letsencrypt/live/hoge.fuga.com/ の下に出来上がった

  • cert.pem を SSLCertificateFile に
  • privkey.pem を SSLCertificateKeyFile に
  • chain.pem を SSLCertificateChainFile に

指定してあげて再起動でOKです。

Googleさんもhttpsを優先付けるとか、検索キーワードをSSLサイトにしか渡さないとかになってきましたので、
これらの対策にもいいのではないかと思いますー。

おまけ(SANsについて)

市販のSSL証明書のサービスでは、SANsというものに対応しているものがあります。
これは、wwwありなし両方ともOKな証明書を生成するサービスです。
https://www.hoge.com でも https://hoge.com でも使えちゃうアレです。

サーバーのVirtualHostにServerAliasとして指定していたり、wwwなしをwwwありに転送かける設定をしてたりするサーバーは多いのではないでしょうか。
このSANsの設定がSSL証明書にないと、例えば、www.hoge.comで証明書作った場合、
1. https://hoge.com にアクセスする
2. 証明書はあるがFQDNが違うので証明書エラー画面が出る
3. 証明書のエラーを無視して進むと、晴れて https://www.hoge.com がエラーなしで表示される
となってしまい、1.の時にちょっとカッコ悪いです。

さて、今回のLet's encryptですが、ちゃんとこれに対応してます!

./letsencrypt-auto certonly -w /var/www/html -d www.hoge.com,hoge.com -m hogehoge@mail.com --agree-tos --webroot

って -dの後を , 区切りで追記するだけです!
これ別ドメインでも書けちゃうんじゃなかろうか。

ちょっとしたSSL証明書が欲しいというときには非常に便利なのでぜひ!

おまけ(wordpress)

wordpressのサーバーの場合、-w が [wordpressのインストール先] になるのでご注意です。
私の場合は、/var/www/wordpress 以下にwordpressがセットアップされていたので、
-w /var/www/wordpress でした。
まぁ、DocumentRoot を入力しましょうね、というおまけでした。

12
12
0

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
12
12