XサーバーにSSL導入
とりあえず一つSSLを導入しました。
Xサーバーのマニュアル通りにやればほぼ問題ないのですが、いくつか躓きポイントがあったのでそのポイントだけ。
1、wwwなしにもSSL適用するのならDNSレコードの設定が必要
コモンネームをwww.AAAAA.comで登録した場合wwwありでもなしでもSSLに対応出来るのですが、デフォルトでは「あり」だけSSLになる設定なので、「なし」に適用するにはDNSレコードを設定する必要があります。
デフォルト ○ https://www.AAAA.com × https://AAAA.com
設定すると ○ https://www.AAAA.com ○ https://AAAA.com
これは一見どうでも良さそうですがwwwのありなしをhtaccessで統一している場合に不具合が出ます。
具体的にはデフォルトの状態で
www.AAAAA.com→https://www.AAAA.com
http://www.AAAAA.com→https://www.AAAA.com
AAAAA.com→https://www.AAAA.com
と順調にリダイレクトされたのですが
https://AAAAA.com→エラー
となりました。
これは(おそらく)デフォルトのままだとhtaccessでリダイレクトされる前にhttpsのエラーが出てしまうものと思われます。
DNSレコードを設定することで解決出来ました。
ちなみにhtaccessはこんな感じ
RewriteEngine on
RewriteCond %{HTTP_HOST} ^AAAA\.com
RewriteRule ^(.*)$ https://www.AAAA.com/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
他にも何通りかやり方があるみたいです。
2、ISPでDNSがキャッシュされる
上記デフォルトの状態でエラーが出たあとDNSレコードを更新してもエラーが直らない状態が続きました。
最初は変更が反映されるのに時間がかかるのが原因と思っていたあのですが、いつまでたっても直らない。
ブラウザを変えても別のPCでアクセスしてもだめ。
で、スマホでテザリングしてアクセスしたら正常に表示されました。
これはどうやら一度アクセスした時点でISPがDNS情報をキャッシュするのが原因みたいです。
つまりデフォルト設定でアクセスしてエラーが出た時点でISPはそのIPアドレスをキャッシュしているため、DNSレコードを更新しても一定時間たたないとISPには変更が反映されないということだと思われます。
回避するには予めDNSレコードを正しく設定した上でサイトへのアクセスを開始すればOKだと思われます。
これまでこういうケースってブラウザのキャッシュが原因の場合が多かったので、なかなか気付くことが出来ませんでした。
SSLを適用するには専用のIPアドレスを使うためこういうことが起きるようです。
3、メタリファラーの設定は必須だけどまだ一部のブラウザだけ
この部分の説明はnanapiさんに丸投げw
SSLがSEOに効くようになるのでmeta referrerのブラウザ対応状況を調べた
web担の記事に丸投げ。
meta name=”referrer”は、HTTPS→HTTPでもリファラを出す新しい仕様 | 編集長ブログ―安田英久 | Web担当者Forum