2016.07.14
【サーバー】Let's Encryptを試してみる
ちょっと興味が出たので試してみる。
Googleさんはこれからはhttpsを優先するとか言っているわけです。
Link:Google ウェブマスター向け公式ブログ: HTTPS ページが優先的にインデックスに登録されるようになります
やったところでここのページではそんなに影響しないと思うけどやっておくことは損ではない。
そして、httpsへ切り替えようとするとまず問題になるのが費用面。
このページは安全だよということを証明するために外部の認証機関を使用して証明するわけです。
その認証機関に登録するためにお金がかかるわけです。
野良という手があるけどそれをするならhttpでいいじゃねと思うわけです。
そんなわけで、しばらくはhttpでいいよと思っていましたが
ついに無料で使える認証機関が出てきたわけです。
それがLet's Encryptとなる。
Link:Let's Encrypt - Free SSL/TLS Certificates
最近はツールや手順などが揃ってきてやりやすそうだと感じてきたので
簡単にさわってみたいと思います。
導入手順は以下を参照。
Link:Let’s Encrypt サーバー証明書の取得と自動更新設定メモ | あぱーブログ
1. gitを使ってcertbotを取得する
流れとしてはcertbotというツールをgitで拾ってきて実行するだけでいけるみたい。
なのでgitを使って拾ってくる。
$ git clone https://github.com/certbot/certbot
2. certbotを使ってサーバーを認証させる
拾ってきたcertbotを使って以下のコマンドを実行します。
# ./certbot-auto certonly --webroot -w <Webルート> -d <ドメイン> -m <メールアドレス>
これを実行するとApacheに指定する認証ファイルができる感じ。
認証方法としては、ドメインとWebサーバーのIPが同じことと、
ドメインからcertbotで生成したファイルをhttpとhttpsで外部から参照できればいいみたい。
んで、ここで問題があって、ためしにやったドメインでは
VirtualHostでhttpとhttpsの処理をわけてあるので
certbotで生成したものが片方しか参照されないという問題が発生しました。
Webルートに ".well-known" というフォルダを作ってその中のファイルで認証しているみたい。
なので、Webルートを指定しないフォルダへシンボリックリンクを作り同じファイルを参照させるようにすることで
問題なく認証ができた感じです。
3. Apacheへファイルの設定
サーバー認証がうまくいくと "/etc/letsencrypt/live/<ドメイン名>/" に証明書等ができるわけです。
あとはこれをApacheへ登録すれば設定完了となる。
細かなApacheのssl関係の設定は割愛する。
SSLCertificateFile /etc/letsencrypt/live/<ドメイン名>/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン名>/privkey.pem
これでブラウザでhttpsでアクセスするとLet's Encryptから認証された
サーバーとなってブラウザで何も言われずに見れる形になるみたい。
4. 自動更新の設定
ブラウザにて証明書の期間を見てもらえばわかるのだが90日しか認証されない。
なので証明書を適度なタイミングで更新しないといけない。
さらに、証明書の更新後はApacheの再起動が必要らしい。
そんなわけで、cronに以下を追加する。
00 05 01 * * <certbotへのフルパス>/certbot-auto renew --force-renew && /sbin/service httpd restart
"certbot-auto renew" で発行済の証明書の更新を行えるらしいが
期限が迫ったら更新するよという方式らしい。
強制的に更新させるためにオプションで "force-renew" をつけると強制更新してくれるみたい。
その後、Apacheを再起動させる形にする。
・セキュリティの強いサーバーには向かない
わかりやすさとurlの短さを取ってドメインをわけて運用しているのですが
Basic認証等セキュリティをすこしでも強くすると認証ができなくなってしまう。
一時的にセキュリティを落として認証って手もあるが自動更新ができないだろうし
いろいろと小細工すればできるのだろうけど全公開するサーバーでないと面倒なことになりそう。
・いつまでLet's Encryptが使えるかが心配
このブログもhttpsに移行するのはいいのだがどこまで維持されるかがわからない。
ファイルストレージで無料を謳って有料へシフトというのはよくある話なのです。
最悪やめてしまう可能性だってある。
「タダより高いものはない」というオチにならなければいいのだが。
本当であれば安い場合でも年に2,000円も出せば運用は可能。
Link:RapidSSL 1,620円 | SSLストア
金払っているので終わることはまずないでしょうしね。
https化することはいいのですがそれなりに準備が必要だったりする。
やるとしても一般公開したいところに絞ってやったほうがいい気がしています。
関連記事