今朝、ConoHaからのメールで「Let's Encryptというサービスを使えば無料でhttps化できる」と知ったのでホームページをhttps化してみました。かなり簡単だったのでご紹介したいと思います。
実際にhttps化したサイトがこちら↓ Panda Noir
https化するメリット
まず通信が暗号化されることですね。次に「通信が高速になる」ことです。
どういうことかというと、HTTP/2を有効化できるということです。多くのブラウザがHTTPS通信のみHTTP/2対応にしています。そのためHTTPではHTTP/2を使えないのです。
HTTP/2は並行処理によりHTTP/1.1より高速に通信ができます。
無料でhttps化する
僕はCentOS 7.2 + nginxでウェブサーバーを運用しているので、その場合のhttps化についてお話します。といっても僕自身はサーバーの仕組みとかに詳しくないので、他の記事を参考にしつつ書きます。
「Let's Encrypt」で証明書を発行
(参考記事: Let's Encrypt で Nginx にSSLを設定する - Qiita)
いきなり参考記事と違いますが、yumを使ってcertbotをインストールします。
certbotとはLet's Encryptのクライアントです。
$ yum install certbot
次に、443ポートを開放します。
$ sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT $ sudo service iptables save
スタンドアローンモードで証明書を取得したいので、nginxを停止させます。
$ sudo nginx -s stop
証明書を取得します。参考記事と異なり、certbotコマンドを使います。
$ certbot certonly --standalone
いろいろ入力するところがありますので、Let's Encrypt で Nginx にSSLを設定する - Qiitaを見ながら入力してください。
うまくエラーが出ずに終わったら、止めていたnginxはもう動かして大丈夫です。
$ nginx
これで証明書が取得できたので、nginxの設定に戻ります。
証明書は3ヶ月で有効期限が切れるので、自動更新の設定も合わせて行ってください。
nginxでhttps化+HTTP/2対応
(参考記事: Let's Encrypt で Nginx にSSLを設定する - Qiita)
/etc/nginx/conf.d/default.conf
を書き換えていきいます。ファイルを分割したりしている方は適宜読み替えてください。
まず、今までlisten 80;
と書いていたところをlisten 443 ssl;
に直します。
次にlisten 443 ssl;
の下に次のように付け加えます。
listen 443 ssl; ssl_certificate /etc/letsencrypt/live/www.hogehoge.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.hogehoge.com/privkey.pem;
www.hogehoge.comは証明書の取得で入力したドメインにしてください。
最後にnginxをリロードします。
$ sudo nginx -s reload
これでhttps化が完了しました。実際にアクセスして確かめてみてください。
ここからHTTP/2対応をしていきます。(参考記事: NginxでHTTP2を有効にする - Qiita)
といってもnginxが対応していれば、listen 443 ssl;
をlisten 443 ssl http2;
に書き換えるだけです。
終わりに
ほとんどコピペで書いた記事となってしまいました。書いた意味あったのかよくわかりません。