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
ZeroSSLは、無料でSSLを取得できるLet’s EncryptをWeb上で手軽に操作できるサイトです。
今回はこのサイトの利用方法についてまとめます。
手順
1.ZeroSSLのサイトへアクセスし、「ONLINE TOOLS」を選択
2.FREE SSL Certificate WizardのSTARTをクリック
3.Details画面
左上に「Email」にメールアドレスを入力。入力は任意ですが、一応入れておきます。
右上の「Domains」はSSLを取得するドメインを入力します。入力するのはFQDNです。
HTTP verification
DNS verification Accept ZeroSSL TOS
Accept Let’s Encrypt SA (pdf)
の3つにチェックを入れて、右上の「NEXT」をクリック
4.「Include www-prefixed version too?(サブドメインにwwwをつけるか)」と聞かれ、今回は必要ないのでNoを選択
5.しばらくすると右下にCSRが生成されますので、CSRコードをダウンロードするかクリップボードにコピーしてNEXTをクリック
6.左側に、Account Key (Let’s Encrypt Key – LE Key)が生成されます(更新時に必要らしい)
同様にコピーして、NEXTをクリック
7.Verificationとなりました。ここからサーバ作業になります。
対象のドメインのサーバへ記載されている文字列でテキストファイルを作成し、中身を「Text:」の中の文字列を記載します。
指定された場所: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!のページが表示されれば成功です。おめでとうございます。
下へとスクロールすると上から「domain certificate」と「domain key」があるので
それぞれコピーして保存しておいてください。
生成されたキーは
・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通信や証明書に問題がないか、ブラウザで確認してみます。
簡単でしたね。
ただし、90日後に更新が必要なのでお気をつけください。。
参考サイト
nginx+OpenSSL:SSLサーバ証明書の設定[スタンダード]
https://cspssl.jp/support/nginx/config.php