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
https://zerossl.com/
ZeroSSLは、無料でSSLを取得できるLet's EncryptをWeb上で手軽に操作できるサイトです。
今回はこのサイトの利用方法についてまとめます。
手順
- ZeroSSLのサイトへアクセスし、「ONLINE TOOLS」を選択

- FREE SSL Certificate WizardのSTARTをクリック

- Details画面

左上に「Email」にメールアドレスを入力。入力は任意ですが、一応入れておきます。
右上の「Domains」はSSLを取得するドメインを入力します。入力するのはFQDNです。
- HTTP verification
- DNS verification
- Accept ZeroSSL TOS
- Accept Let's Encrypt SA (pdf)
の3つにチェックを入れて、右上の「NEXT」をクリック
- 「Include www-prefixed version too?(サブドメインにwwwをつけるか)」と聞かれ、今回は必要ないのでNoを選択

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

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

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

指定された場所:webroot/.well-known/acme-challenge/
ここではwebrootは hdserver.mydns.jp になるので
http://hdserver.mydns.jp/.well-known/acme-challenge/[File名]でアクセスできる様にファイルを設置します。
# cd /usr/share/nginx/html
# mkdir -p .well-known/acme-challenge/
# vi [File名] #Text:記載の文字列を入力するファイルをアップしたら、File:のファイル名リンク部分をクリックして、ファイルが正しく設置されたかを確認する。
Textで指定された内容が表示されればOK、右上の「NEXT」をクリックする。
Your certificate is ready!のページが表示されれば成功です。

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

生成されたキーは以下の4つ:
- CSR
- Account key (Let's Encrypt Key – LE Key)
- domain certificate
- domain key
不足していないか確認しておきましょう。
サーバ内で証明書の設置を実施
ここからはサーバ内での作業になります。
WEBサーバはNginxなので、それに準じて作業を進めます。
※予め取得した domain.crtと domain.keyをサーバへコピーしておきます。
1. root権限のみで読めるようにアクセス権と所有権を変更
# cd /etc/pki/tls/
# chmod 400 domain.crt
# chown root:root domain.crt2. SSLの設定ファイルを作成
# 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 / {
…
}
}3. 設定に誤りがないか検証
# /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 successful4. reloadもしくはrestartで設定を反映
# /etc/init.d/nginx reload
nginx を再読み込み中: [ OK ]おしまい。
SSL通信や証明書に問題がないか、ブラウザで確認してみます。

簡単でしたね。
ただし、90日後に更新が必要なのでお気をつけください。。
参考サイト
nginx+OpenSSL:SSLサーバ証明書の設定
https://cspssl.jp/support/nginx/config.php
ZeroSSLでLet's Encryptしてコアサーバに
https://blog.macfeeling.com/archives/25241