さくらインターネットサーバーでのSSL運用・URL正規化設定情報

Share

先日サブドメインの変更、及びそれに伴うURL正規化処理の設定をした際に、結局なんだかんだと多少のトラブルがあったので、ここに備忘録代わりに設定内容を書いておくことにした。

2019年6月現在の設定内容。

以下は、本サイトのドメイン、miaoued.netでの、SSL化及びwwwのサブドメインを無くしてのURL正規化を行う設定内容なので、参考にする人は留意してほしい。

まず、さくらインターネットのサーバーコントロールパネルでの設定。
ドメインはmiaoued.net及びwww.miaoued.netの2つを登録。

wwwのあるものと無いもの、二種類を追加しておく。

両方ともドメイン設定は、「wwwを付与せずマルチドメインとして使用する(上級者向け)」に変更しておく。

www有り無しどちらも設定。上級者向けと書かれているが気にしない。

SSLの設定を、やはりwww有り無し両方のドメインに対して行う。僕はさくらインターネットのLet’s encryptを利用した無料SSLにて設定。www有り無しで別々の証明書を取得。
ちなみに無料SSLを利用する場合、先程述べた「wwwを付与せず~」が設定されていないと、SSLの証明書を取得する際にドメインの認証に失敗するので注意。

ちなみに、後述のように最終的にhttps://miaoued.netにリダイレクトで統一されるなら、ここでwww.miaoued.netのSSL設定は必要なさそうに感じるのだが、設定しておかないと、https://www.miaoued.netにアクセスがあった段階でSSLの証明書エラーが発生して、その後リダイレクト処理となってしまう。エラー画面を出さないためには、きちんと両方設定しておくこと。

.htaccessの編集内容は、以下の通り。
HTTPS化については、当サイトはwordpressで運用しているため、SAKURA RS SSLを導入した。このプラグインにより、HTTPS化のリダイレクトに関しては.htaccessに自動で記入される。
自分で編集する場合も、以下の内容を参考に書いてもらって大丈夫だと思う。

# BEGIN Force SSL for SAKURA
# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA

これにより、
http://www.miaoued.net → https://www.miaoued.net
https://miaoued.net → https://miaoued.net
へのリダイレクトが行われる。

また、URLの正規化については以下のような設定となっている。

##www有る無しのリダイレクト
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.miaoued\.net)$ [NC]
RewriteRule (.*) https://miaoued.net%{REQUEST_URI} [R=301,L]
</IfModule>

これにより、
https://www.miaoued.net → https://miaoued.net
へのリダイレクトが設定される。

実際には後方参照を利用した、もっとうまい書き方(こことかを参照)があるみたいだが、とりあえず上手く動いているようなのでこれで妥協。

これらのリダイレクト設定を、.htaccessの先頭に追記(さくらのSSL化プラグインによるリダイレクトが先頭に挿入されたので、そこに合わせてある)。

今回は以上。

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です