今やSSLしていないサイトはアドレスバーに暗号化されていませんというメッセージが表示されてしまうため、常時SSL化が絶必ですね。
先日、SSL化していないサイトをエックスサーバーに移転するタイミングで常時SSL化を実行しました。
エックスサーバーでは無料独自SSLの他、GeoTrustのようなSSLブランドのSSLが導入可能です。
今回は無料独自SSL(Let's Encrypt)を導入しました。
エックスサーバーではDNSがエックスサーバーに向いていなくてもSSL設定ができるようになりました。
エックスサーバーでドメイン・SSL設定
まずはエックスサーバーでドメインの設定とSSLの設定をします。設定はサーバーパネルのドメイン設定から行います。
ドメイン設定

他社サーバーで運用中のドメインをエックスサーバーで無料独自SSLを利用するにチェックを入れた状態で設定すると以下のようなメッセージが表示されます。

そうすると、無料独自SSLの設定に失敗した旨のメッセージが表示されます。

まだドメインのネームサーバーをエックスサーバーのネームサーバーになっていないからですが、今はこのままにしておきます。
SSL設定
他社サーバーで運用中のドメインのSSL設定を完了させるためには一手間設定が必要です。
改めて、「SSL設定」メニューから無料SSLの設定を行います。
設定ファイルをダウンロードして現在のサーバーに設置して認証する方法(Web認証)と、ドメインのDNSレコードを追加する方法(DNS認証)があります。
外部サーバーでのWeb認証

ダウンロードボタンからトークンファイルをダウンロードします。wwwあり、なし用2つのファイルがあります。
設置URLに書かれている通りのディレクトリを作成して、そのトークンファイルをアップロードします。
現在のサーバー上に「.well-known」ディレクトリを作成し、その中に「acme-challenge」を作成します。
設置をしたら、設置URLにアクセス可能かどうかも確認しておきましょう。
確認画面に進んだ後、「トークン設置URLにアクセスできませんでした。」と表示されてしまう場合は、設置場所が正しいかどうか再度確認します。
正しいのに上記メッセージが表示されてしまう場合はDNSでの認証になります。
外部ネームサーバーでのDNS認証
もう一つはドメインのDNSレコードを追加する方法です。こちらはドメインにTXTレコードを追加できる環境が必要です。
レンタルサーバーによってできる場合とできない場合があるので、サーバー会社に確認が必要です。
さくらインターネット、ColorfulBox、mixhost、Value DomainなどはDNSレコードの追加が可能です。
以下の記事ではValue DomainでのDNS認証の手順を記載しています。

「トークン設置URLにアクセスできませんでした。」
「トークンのDNSレコードが見つかりませんでした。」とエラーが出る場合
ファイルが正しく設定できているのに、また正しくDNSレコードを追加しているのにエラーになる場合は一旦時間を置いて確認してみます。
https://www.xserver.ne.jp/manual/man_server_ssl.php
それでもエラーになる場合は、一旦エックスサーバーへ移行完了してからSSL設定をした方が良いでしょう。
エックスサーバーのDNS
ネームサーバー1 ns1.xserver.jp( 219.94.200.246 )
ネームサーバー2 ns2.xserver.jp( 210.188.201.246 )
ネームサーバー3 ns3.xserver.jp( 219.94.200.247 )
ネームサーバー4 ns4.xserver.jp( 219.94.203.247 )
ネームサーバー5 ns5.xserver.jp( 210.188.201.247 )
ネームサーバーを変更してからSSLを設定する場合
SSL設定をネームサーバー切り替え後に行う場合、ネームサーバーを切り替えてもすぐにSSL設定ができるわけでなく、ある程度DNSが浸透してからでないと設定できません。(前述のようなエックスサーバー指定のネームサーバーになっていませんとエラーが出ます)
ネームサーバー変更後、SSL設定できるまで2〜3時間かかりました。
これでサイトのSSL化は完了です。
httpへのアクセスをhttpsへリダイレクト設定する(301リダイレクト)
httpのアクセスをhttpsへリダイレクトするために.htaccessを編集します。この場合は恒久的なリダイレクトとなる301リダイレクトです。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
サイトのURLをhttps://〜に変更する
サイトのコンテンツにあるURLもhttp://〜の絶対パスで記載さている場合は全てhttps://〜に変更します。
特に画像やCSS,Javascriptなどの外部ファイルのリンクがhttpのままだと不完全なSSL化になってしまうので注意が必要です。
WordPressでのURL変更
WordPressを利用している場合は「設定」>「一般」から
・WordPress アドレス (URL)
・サイトアドレス (URL)
をhttpsから始まるアドレスに変更します。
Search ConsoleやGoogle AnalyticsなどのURLを変更する
Search Consoleでhttpsのプロパティを追加します。wwwあり,wwwなしの両方を追加します。
またGoogle Analyticsを利用している場合はプロパティ設定でURLをhttpsに変更します。

サイトマップを再生成してGoogleに送信する
httpsに変更したサイトマップ(sitemap.xml)を再作成してSearch Consoleで送信します。
Googleインデックスは数日でhttpsのURLに変更されていました。
ひとまずこれで常時SSL化に伴う作業は完了です。