NginxにSSLを導入してWordPressを常時SSL化する




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

GoogleもSSLを推奨しており、SEOにも関連するらしいので導入する。
最近、正式サービス化されたLet’s Encryptで証明書を発行する。

証明書の発行

gitのインストール

インストールしていない場合はインストールする。

Let’s Encryptクライアントのダウンロード

テスト実行

./letsencrypt-auto –helpを実行すると、自動的にapt-getが動きpythonなど必要なパッケージをインストールします。

無事環境が整った場合、Let’s Encryptのヘルプが表示されます。
特にエラーが出ることはないと思います。
/tmpをRAMディスクにしている場合は、32M以上使用するため容量に注意。

証明書の取得

nginxが起動している場合は停止し、443番ポートを開ける。

メールアドレスを入力。
罫線が文字化けしてるけど気にせずに
lets-encrypt-1
利用規約への同意
lets-encrypt-2

以下のメッセージが出れば取得完了
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/harvestasya.com/fullchain.pem. Your cert will
expire on 2016-07-31. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.

DH鍵交換パラメータ作成

DH鍵交換用のパラメータを作成する。15分ほどがかかる。

Nginxの設定

/etc/nginx/nginx.confのコメントアウトされていたところを有効化し、取得した証明書と秘密鍵を設定する。

WordPressの設定

サイトアドレスの変更

サイトアドレスをhttpsに変更する。
nginx-ssl-1

記事内のサイト内リンクの置換

記事内にあるサイト内リンクをすべてhttpsに置き換える。
プラグイン「Search Regex」を使用すると簡単にできる。
nginx-ssl-2

その他

そのほかウィジェット内にないか確認する。
すべてhttpsに変更できていれば、URLの横あたりに鍵マークが表示される。
SSLサーバーのテストはQualys SSL Reportで出来る。
https://www.ssllabs.com/ssltest/

証明書の自動更新

証明書の有効期限が3ヵ月と微妙に短いので、自動更新を設定しておく。
証明書を自動更新する場合は–renew-by-default オプションを使えばいいのだが、証明書を作成した際に使用したstandaloneオプションはWebサーバーが起動していると使用できない。
webサーバーが起動している場合は、webrootオプションを使用して更新する。もちろん、証明書を取得する際でもwebrootオプションは使用できる。

Let’s Encryptクライアントの更新

たまに更新されるので、更新しておくといいかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です