無料SSLでよりセキュアなWordpressを公開する

· 4 min read
無料SSLでよりセキュアなWordpressを公開する

2014年にGoogle社は、SSL/TLS化された安全なWebサイトを、検索において優先的に順位を上げることを発表しました。
また2016年、ヤフー株式会社も、Yahoo! JAPANなど全てのサービスをSSL/TLS化することを発表しています。

以降、個人情報の入力画面だけではなく、全てのページでSSL/TLS通信を行う「常時SSL/TLS化」の需要は高まっているので、この流れに乗ってWordpressもSSL化してみました。

概要

今回はWEBブラウザ上で視覚的且つ簡単にSSLを取得できる「ZeroSSL」を利用したいと思います。

Free SSL Certificates and Free SSL Tools @ ZeroSSL – Zero cost SSL

0

ZeroSSLは、無料でSSLを取得できるLet’s EncryptをWeb上で手軽に操作できるサイトです。
今回はこのサイトの利用方法についてまとめます。


手順

1.ZeroSSLのサイトへアクセスし、「ONLINE TOOLS」を選択

1

2.FREE SSL Certificate WizardのSTARTをクリック

2

3.Details画面
左上に「Email」にメールアドレスを入力。入力は任意ですが、一応入れておきます。
右上の「Domains」はSSLを取得するドメインを入力します。入力するのはFQDNです。

HTTP verification
DNS verification Accept ZeroSSL TOS
Accept Let’s Encrypt SA (pdf)
の3つにチェックを入れて、右上の「NEXT」をクリック
3

4.「Include www-prefixed version too?(サブドメインにwwwをつけるか)」と聞かれ、今回は必要ないのでNoを選択

4

5.しばらくすると右下にCSRが生成されますので、CSRコードをダウンロードするかクリップボードにコピーしてNEXTをクリック

5

6.左側に、Account Key (Let’s Encrypt Key – LE Key)が生成されます(更新時に必要らしい)
同様にコピーして、NEXTをクリック

6

7.Verificationとなりました。ここからサーバ作業になります。
対象のドメインのサーバへ記載されている文字列でテキストファイルを作成し、中身を「Text:」の中の文字列を記載します。

7

指定された場所:webroot/.well-known/acme-challenge/
ここではwebrootは「hdserver.mydns.jp」になるので

http://hdserver.mydns.jp/.well-known/acme-challenge/[File名]

でアクセスできる様にファイルを設置します。

[bash]
# cd /usr/share/nginx/html
# mkdir -p .well-known/acme-challenge/
# vi [File名] #Text:記載の文字列を入力する。
[/bash]

ファイルをアップしたら、File:のファイル名のリンク部分をクリックして、ファイルが正しく設置されたかを確認する。
Textで指定された内容が表示されればOK、右上の「NEXT」をクリックする。

8.Your certificate is ready!のページが表示されれば成功です。おめでとうございます。

8

下へとスクロールすると上から「domain certificate」と「domain key」があるので
それぞれコピーして保存しておいてください。

9

生成されたキーは

・CSR
・Account key (Let’s Encrypt Key – LE Key)
・domain certificate
・domain key

の4つとなります。不足していないか、確認しておきましょう。


サーバ内で証明書の設置を実施

ここからはサーバ内での作業になります。
WEBサーバはNginxなので、それに準じて作業を進めます。
※予め取得した「domain.crt」と「domain.key」をサーバへコピーしておきます。

1.root権限のみで読めるようにアクセス権と所有権を変更。

[bash]
# cd /etc/pki/tls/
# chmod 400 domain.crt
# chown root:root domain.crt
[/bash]

2.SSLの設定ファイルを作成

[bash]
# vi /etc/nginx/conf.d/ssl.conf

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server {
listen 443;
ssl on;
server_name hdserver.mydns.jp;
ssl_certificate /etc/pki/tls/certs/example_com_combined.crt;
ssl_certificate_key /etc/pki/tls/private/example_com.key;

location / {

}
}
[/bash]

3.設定に誤りがないか検証

[bash]
# /etc/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[/bash]

4.reloadもしくはrestartで設定を反映

[bash]
# /etc/init.d/nginx reload
nginx を再読み込み中: [ OK ]
[/bash]

おしまい。


SSL通信や証明書に問題がないか、ブラウザで確認してみます。
10

簡単でしたね。
ただし、90日後に更新が必要なのでお気をつけください。。

参考サイト

nginx+OpenSSL:SSLサーバ証明書の設定[スタンダード]
https://cspssl.jp/support/nginx/config.php

ZeroSSLでLet’s Encryptしてコアサーバに