Let's Encrypt!!
Let's Encrypt
さぁ、暗号化を始めましょう!
・・・っていう勧誘ではなくて。
おそらくご存知の方が多いと思うのですが、Let's encryptという無料でSSL証明書生成しちゃおうぜプロジェクト(乱暴)というのがあります。
https://letsencrypt.org/
私自身で知ったわけではなく、こういうのあるから使ってみたら?って教えてもらったんですが。
いろいろと調べてみたところ、まぁ、普通に使えそうだな、と思ったので使ってみました。
仕組み?
Let's encryptを使う、というか、SSL証明書を発行してもらうには、SSL証明書を作りたいサーバーでLet'sEncryptクライアント(以下LEC)をインストールする必要があります。
何となくログを眺めてみてたところ、
- LECがCSRをよしなに作る。
- LECが DocumentRoot に適当なファイル(.well-known/ほげほげ)を生成する
- LECがどこか(おそらくLet's Encryptサーバー)にCSR送信して申請する
- 3.のときに合わせて2.で作ったほげほげのところを一緒にURLパラメータで送信する
- LEサーバーが指定されたファイルにアクセスしてくる
- LEサーバーが4.のレスポンスとしてアクセスした結果を返す
- LECが証明書作る
てな感じだと思いました。
※だいぶ適当なので信用しきっちゃダメですよ。
いわゆるファイル認証ってやつですね。
これ、大手さん、例えばSymantec, GeoTrustなどの証明書発行手順とほぼ同じだと思います。
クライアントがインストールしてあれば1つのコマンドで完全に自動化出来るのが大きいと思います。
構築した環境について
CentOS6.5 + Apache2.2.15
必要なもの
- サーバー
- 自前のWebアプリケーションサーバー(私はApacheですがNginxでもOKとか)
- DNSレコード(AでもCNAMEでも可)編集権限
LEサーバーはDNSレコードを引いてアクセスしてくるので、LECを実行したサーバーを向かせられないとダメです。
- 「あ、やべ!」と思った時に対処できる落ち着き。(←大切)
環境の構築
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 [email protected] --agree-tos --webroot
./letsencrypt-auto certonly -w /var/www/html -d hoge.fuga.com -m [email protected] --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 [email protected] --agree-tos --webroot
って -dの後を , 区切りで追記するだけです!
これ別ドメインでも書けちゃうんじゃなかろうか。
ちょっとしたSSL証明書が欲しいというときには非常に便利なのでぜひ!
おまけ(wordpress)
wordpressのサーバーの場合、-w が [wordpressのインストール先] になるのでご注意です。
私の場合は、/var/www/wordpress 以下にwordpressがセットアップされていたので、
-w /var/www/wordpress でした。
まぁ、DocumentRoot を入力しましょうね、というおまけでした。
Author And Source
この問題について(Let's Encrypt!!), 我々は、より多くの情報をここで見つけました https://qiita.com/wingedtw/items/5eac355729f3f9eaa78f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .