Panda Noir

JavaScript の限界を究めるブログでした。最近は幅広めに書いてます。

暗号化だけじゃない!サイトをhttps化するメリット

f:id:panda_noir:20180219190901p:plain

今朝、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;に書き換えるだけです。

終わりに

ほとんどコピペで書いた記事となってしまいました。書いた意味あったのかよくわかりません。