ChromeがSSL(https://<ドイメイン名>)に対応していないサイトを表示するときに、アドレスバーの左横に「保護されていない通信」などというように注釈が付くようになってしまいました。個人の趣味のブログなどならいず知らず、会社のホームページなどでこれが出るのはちょっといい気分ではないですね。環境でバーチャルホストによって複数のドメインを管理しているサーバで、特定のサイトのみをSSL化する手順を公開します。当然のことながら、Apacheの設定を変更する必要があるので、SSHクライアントなどを使ってサーバにシェルアクセスできることが前提となります。筆者はputtyを使ってサーバにログインしています。クライアント側パソコン側では、最低限WordPressを管理できるウェブブラウザとSSHなどでサーバへシェルアクセスできるputtyなどを用意します。Encryptのホームページを示しておきます。https://letsencrypt.org/ja/SSL導入手順0.EPELを導入しておくEPELが入っていない環境でcertbotを使うと、以下のようなエラーメッセージが出ます。epelパッケージを有効にする必要があります。epel-release1.certbotをインストールするcertbotというコマンドを導入します。EncryptのSSLを構築します。python-certbot-apache2.HTTPS用のポートを開放する次に、ファイヤーウォールのHTTPSのポート(443)を開放します。このやり方にはいくつかありますが、以下のようになっていればOKです。dpt:https具体的なポート開放のやりかたは、ここを参照してください。3.certbotを使ってssl証明書を導入する次は、いよいよcertbotコマンドを使って、SSL証明書を導入します。コマンドの書式は以下のような感じです。<ドメイン名>筆者のサイト「www.spankyjpn.com」でのコマンドは以下のような感じになりました。下に、ドメイン名のフォルダが出来て、その中に必要な証明書のファイルが作成されます。この情報をapacheのhttpd.confに設定します。*:80の設定を全部コピペしておきます。*:443のエントリを作成します。*:80>との違いは、1行目VirtualHostの80が443になる。3行目ポート番号が443になる5・6行目ログを出力ファイルをssl用に分ける。オリジナルのほうのログファイル名の末尾に「-ssl」を付けただけです。14~20行目までssl用に新しく追加した行です。17・18・19・20行はおまじないのようなものなので、そのままコピーして使ってください。14・15・16行目SSLの設定ファイルを設定する。www.spankyjpn.comをご自分のドメイン名に変更するだけです。再起動するWebサーバを再起動します。設定ファイルの整合性を確かめます。configtest問題なければ、次に、apacheを再起動します。restart動作テストブラウザで、ドメイン名の先頭に「https://」を付けて、サイトを開いて見て下さい。wordpressのサイトの場合、まだ完全にSSL化されてアドレスバーの左横に鍵のマークが出ないと思います。今は未だWebサーバが起動しないとか、SSLが全然できていないなど致命的な不具合が無いことを確認できて目的のサイトがまずはhttpsで表示されればOKです。アドレスの横に鍵マークが付かない件に対応するには、後述の「WordPress更改手順」を参照してください。renew」コマンドで簡単に確認できます。このコマンドを投入すると、以下のような表示が出ます。下記の例では、www.spankyjpn.comの証明書は2020年の1月13日まで有効ということになります。renew」コマンドを投入すると、証明書が更新されます。attempted.自動更新の設定さて、ここまでくればサーバ側のシェルでの作業はほぼ終わりです。EncryptのSSL証明書は90日間の有効期限だということです。90日間というのは微妙な期間で、結構更新作業を忘れます・・・。そこで、crontabにジョブを設定して、SSLの証明書を自動的に更新するように設定して、更新忘れをなくします。設定自体は、crontabコマンドで行います。-e」でエディタを起動します。作業はルートユーザーで行います。基本の設定WordPressでテンプレートにcocoonを使っている環境を例に設定を行っていきます。WordPressの管理画面にログインしてください。この画面にある「WordPressアドレス(URL)」と、「サイトアドレス(URL)」の「http://」を「https://」に変更します。自分で埋め込んだ画像ファイルなどのURLの変更よく忘れがちなのは、メニューやウイジェットなどへ自分で埋め込んだ画像のURLがhttp://のままになっていたりすると、ブラウザのアドレス欄に鍵マークが付きませんので、忘れずに更新してください。メディア内の画像のURLを変更メディアとして埋め込まれている画像のURLをすべて変更します。手作業だとかなり大変なので、ここれは便利なプラグインを紹介します。Regex」と入力して下さい。すると、以下のようなプラグインが見つかるはずですので、インストール⇨有効化してください。Regexの画面を開いてください。Pattern」に、「http://」と入れて、「Search」ボタンを押下します。すると、http://を使っているURLがたくさん表示されると思います。pattern」に「https://」(⇐必ずhttpsを使う)もしくは「//」(httpでアクセスされたらhttpを、httpsでアクセスされたらhttpsを使う)を入力して、「Replace&Save」ボタンを押下します。Cocoonの設定変更Cocoonには、2箇所ほど画像が勝手に埋め込まれてしまう部分がありますので、これも変更しておきます。1つ目は、「Cocoon設定」⇨「OGP」の中にある「ホームイメージ」というものです。この項目の「画像のアップロード」というところの「http://」を変えて下さい。一度画像を保存してメディアにアップロードしてから再度画像を選択し直すとhttpsになります。cocoonのもう1つの埋め込み画像ですが、これは「AMP」という設定項目のなかにあります。「AMPロゴ」という部分のURLをhttpsに変更します。これも前述のOGPと同じで、すでに表示されている画像を保存してメディアにアップロードし、そのメディアの画像を選択すればhttpsになります。Encryptの存在を知り、早速試したところ、いとも簡単に無料でSSL証明書が発行できてしまって感動したので、その情熱が冷めないうちにブログにまとめました。自動更新のタイミングになった際に、crontabの設定情報を再度ブラシアップしなければならないかもしれませんので、そのときはまたこの記事をアップデートしたいと思います。