無料SSLの「let’s encrypt」を導入してみた
昔はSSL化(https化)はお金がかかるし、処理速度も遅くなるし、
導入も面倒だしと思っていたのですが、
最近はそうでもなくSSLだけと無料、速い、楽になったようですので、
あと世の中的にもう全部SSLにしようという流れにまけてSSLにしたいと思います。
SEO効果も若干はあるようですので。。
あと、iphoneアプリのATS無効も効かなくなり来年あたりから完全にhttp通信が死んでしまいそうなので、
1. 無料SSL「let’s encrypt 」をインストール
gitからファイルを落とし
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt/
下記コマンドで環境チェックを行うようです。成功するとhelpが表示されます
$ ./letsencrypt-auto --help
エラー内容が表示される場合は、1つ1つ改善する必要があります。
僕の場合はopensslのバージョンが古かったです。。 yum update opensslで完全されましたが。
2. SSL証明書周りをダウンロード
下記のように自分のSSL化したいドメインを指定して実行すると、
対話式の画面で、メールアドレスを求められます。
./letsencrypt-auto certonly -a standalone -d ドメイン
対話画面のメールアドレスを入力し、
さらに利用規約に同意すると、
完了画面が表示されます!
The program nginx (process ID 18766) is already listening on TCP
port 80. This will prevent us from binding to that port. Please stop
the nginx program temporarily and then try again.
ただ僕の場合は、下記のようなエラーでたので、
認証チェック時の80ポートに使っているnginxを、
面倒だったので停止してから、証明書DLのコマンドを打ち直しました。
すると、無事完了し、下記フォルダ内に一式証明書周りのファイルが生成されました。
/etc/letsencrypt/archive/ドメイン名/privkey1.pem ← 秘密キー
/etc/letsencrypt/archive/ドメイン名/cert1.pem
/etc/letsencrypt/archive/ドメイン名/chain1.pem
/etc/letsencrypt/archive/ドメイン名/fullchain1.pem ← サーバー証明書と中間証明書のガッチャンコ
これをnginxの設定に入れます。
3. nginxでSSLの設定
$vim /etc/nginx/conf.d/hoge.conf
下記のような内容をnginxに設定
listen 443 ssl;
ssl_certificate /etc/letsencrypt/archive/ドメイン/fullchain1.pem;
ssl_certificate_key /etc/letsencrypt/archive/ドメイン/privkey1.pem;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!ADH:!MD5;
あとはnginxのチェック&反映
$ nginx -t
$ service nginx restart
最後にhttpsでドメインチェック!
その他すすめる上で気になるところTIPS
- 認証チェックする際のポートが開いていない、ポートが開いているか確認する
- letsencryptの有効期限が3ヶ月らしいので、cronなどで自動更新処理をしておくといいかも
- httpからhttpsにリダイレクトなどSEO効果など大事にするチューニング色々
ほぼこちら完結かつわかりやすい記事を参考にさせて頂きました!
ありがとうございます!
http://qiita.com/sak_2/items/ff835b669c0a7e110b09