半年前に書きかけていた記事ではありますが、このブログをさくらの無料SSL(Let’s Encrypt)で常時SSL化しました。
以前にもStartSSLを使って常時SSL化しようとしたり、さくらのラピッドSSL無料キャンペーンの際にもSSL化しようとしたのですが、さくらのインターネットのドメイン回りやhtaccessの設定が特殊だったりした事情もあって、結局やらずじまいで中断したままになっていました。
今回も大分時間のかかる作業になってしまい、途中でやめようかと思ったりもしたのですが、何とかURL正規化まで含めて設定が出来たので、作業メモとして残しておこうと思います。
このブログの運用環境
- さくらインターネット スタンダード
- ムームードメイン
- WordPress
今回作業した内容
- さくらインターネットのLet’s Encryptを設定
- 運用中のWordPressを常時SSL化(さくらのプラグインを使用)
- URL正規化(SSLあり、wwwなしで統一)
さくら管理画面での作業
ドメイン(wwwあり・なし両方)を追加
おそらく大半の方はドメイン設定を下記スクリーンショットの赤枠の箇所に設定にしているのではないでしょうか。
この設定ではwwwありとなしをさくら側で自動的に設定してくれるので「手軽で便利」ではあるのですが、リダイレクトまではしてくれいないためwwwのあり・なしの正規化までは出来ないという問題がありました。
このブログでも以前は推奨設定で運用していたためwwwあり・なしの正規化を行っていませんでした。
今回SSLを追加するので、wwwあり・なしの正規化までやってしまいます。
まずさくらサーバーでwwwあり・なしの統一するためには、下記スクショのようにwwwありのドメインとなしのドメイン両方を個別に登録する必要があります。
そのうえで、一方からもう一方のドメインへhtaccessを使ってリダイレクトさせるという方法を使います。
各ドメインの設定画面では「wwwを付与せず・・・」の方にチェックを入れます。
ここにチェックが入っていないとさくらサーバーの方で自動的にリダイレクトしようとするのでリダイレクトループになります。
wwwありのドメインも追加します。
「wwwを付与せず・・・」の方にチェックを入れて、マルチドメインの対象フォルダはWordPressの入っているwwwなしのドメイン方とは違うフォルダを指定します。フォルダの中にはhtaccessを入れて、wwwなしのドメインへリダイレクトがかかるようにしておきます。
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?bluesky-blog.net$ [NC] RewriteRule .* https://bluesky-blog.net%{REQUEST_URI} [R=301,L]
これでwwwありのドメインからなしのドメインへ全体でリダイレクトがかかるようになってくれました。
SSL証明書の設定
ドメインを2つ設定しているので、それぞれにSSL設定をする必要があります。
今回は無料SSLを2枚申請してそれぞれ個別に設定しました。
有償SSLの場合はwwwありなし両方使えるように申請すれば1枚で済むはずです。
証明書の発行が完了したらメールが届くので、ドメイン設定の「変更」から、ドメインのSSL設定を「SNI SSLを利用する」に変更します。
これでサーバー管理画面側の設定は終わり。
WordPress側に移ります。
WordPress管理画面での作業
さくらの常時SSL化プラグインをインストールしてSSLを有効化します。
これはプラグインを入れて確認画面を見て有効化するだけなので特に問題ありませんでした。
使い方は下記参照してください。
SSL有効化が終わったら設定を確認しましょう。
きちんとhttpsになっているか
管理画面の設定を確認します。
記事内の画像パスやURLの確認
記事の画像のURLやリンク先等が置き換わっているかどうかの確認には、「Search Regex」というプラグインを使いました。
「http://ドメイン」で検索して確認するといいと思います。
このような感じで記事内の文字列を検索して一括置換したり出来ます。正規表現も使えます。
確認が終わったらwwwありなし、SSLありなしなどできちんとリダイレクトされているか確認して、問題がなければ完了です。
ブラウザキャッシュの影響が強いのでシークレットウインドウで確認した方が良いかもしれません。
あとがき
さくらインターネットのSSL設定はドメインの正規化までしなければ簡単に終わる話なのですが、正規化しようとするとドメイン追加したり設定を変えたりと色々大変でした。
設定変更に際してはあちこち調べて参考にさせていただきました。
ありがとうございました。