ブログに関する役立つ知識をまとめています
サーバー

ウェブサイトを無料でHttps通信に対応させる方法(Nginx + CentOS7 + Let’s Encrypt)

今回はサイトをHTTPSに対応させる方法を紹介したいと思います。

SSL化というと何か難しそうに聞こえますが、

正しい手順を踏めば全く難しいものではありません。

しかし、HTTPSはHTTPよりもセキュリティが高く、証明書も必要になるのですが

この証明書を発行するためには普通はお金がかける必要があります。

ですが、Let’s Encrypt というものを使うことによって無料で自身のウェブサイトをHTTPSに対応させることができます。

というわけで、その方法を順番に説明していきます。

SSL証明書を発行する

1.certbotのインストール

まずはLet’s Encryptのクライアントソフトであるcertbotをインストールします。

今回はサーバーのOSがCentOS7であるという前提でインストールしていきますが、

UbuntuやCentOS6などのOSを使用している方は以下のリンクよりLet’s Encryptの解説サイトに行ってそれぞれのOSに応じた方法でインストールを行ってください。

https://letsencrypt.jp/usage/install-certbot.html

certbotをインストールするためには、以下のコマンドを打ちます。

ただし、Apache プラグインを使用しない場合には、python-certbot-apache をインストールする必要はありません

2.証明書の発行

次に証明書を発行します。

以下のコマンドを打ってください。

Nginxの.confファイルの編集

SSL証明書に成功したら、次にnginxのファイルを編集しなければなりません。

http通信は80番ポートを使って外部と通信をしているのですが、

https通信は443番ポートを使って通信をしています。

なので443番ポートからアクセスできるようにしてあげましょう。

設定ファイルはだいたいの人は /etc/nginx/nginx.conf にあると思うので、そこにある前提で話を進めます。

以下のコマンドで設定ファイルを編集しましょう。

nginx.confの中にserver_name (ドメイン名)のようなところがあると思うのですが、それと同じように

と書いてください。

また、http:ドメイン名 で接続してきた人を https:ドメイン名 にリダイレクトさせてあげるために、もう一つ設定ファイルを修正します。

return でhttpsの方のURLを返すことでリダイレクトさせることができます。

nginx.confを設定した後、nginxを再起動してください。

https:設定ドメイン名で接続してみて問題なく接続できたら、成功です。

もし余裕がある人は、cronなどを使ってSSL証明書を自動再発行できるように設定してみるといいです。

またリンクなどを張っている場合は、リンクもhttpsに書き換えてあげましょう。

おまけ: WordPressにも対応させたい場合

もしこの記事を読んでいる人の中でWordpressを使っている人は、Wordpressの方も設定をしましょう。

ワードプレス→ダッシュボード から

アドレスをhttpからhttpsに変更してあげてください。

『変更を保存』をクリックすれば変更完了です。