さくらインターネット(以下, さくら)で提供されている RapidSSL で当サイトのWordpressをhttps化しました. httpsとは, httpがSSLやTSLで暗号化された状態であることを表します. このhttps化をさくらで行う場合, 色々と厄介だったので備忘録としてここに記載しています. また, 同じ問題を抱えている人の参考になれば幸いです.
はじめに
当サイトのドメインは, 独自ドメイン(tnrsca.jp, ドメインの部分は任意で変更してください)にwwwをつけて”www.tnrsca.jp”に統一して運営することを前提にしています. これはどういうことかというと, “tnrsca.jp”でアクセスしても”www.tnrsca.jp”でアクセスしても, “www.tnrsca.jp”として当サイトにアクセスされるということです. そして, RapidSSL でhttps化すると当サイトのドメインは”https://www.tnrsca.jp”となり, 最終的には以下のいずれのドメインでもこのサイトにアクセスされるようにします.
- tnrsca.jp
- tnrsca.jp/ (/あり)
- www.tnrsca.jp
- www.tnrsca.jp/ (/あり)
- http://tnrsca.jp
- http://tnrsca.jp/ (/あり)
- http://www.tnrsca.jp
- http://www.tnrsca.jp/ (/あり)
- https://tnrsca.jp
- https://tnrsca.jp/ (/あり)
上記のドメインは本来は別物で, ドメインを統一する設定をちゃんとしておかないと, ドメインのちょっとした打ち間違いで当サイトに辿り着けなくなってしまいます. また, SEO(Search Engine Optimization)の観点からもこの設定は重要です. そこで, ドメインを RapidSSL でhttps化し, かつ一元化する手順を記載していきます.
RapidSSL を独自SSLとして利用可能にするまでの手順
1.CSRの作成
RapisSSLのサーバ証明書を取得する場合, まずCSRの作成を行います. 当サイトの場合, 最初からwwwがついていない”tnrsca.jp”でCSRを作成するのですが, サイトをwwwありの”www.tnrsca.jp”で運営する場合, ドメインでwwwを選択する必要があります(ドメインの赤枠部分). また, ドメインを空白のままにしておくと”tnrsca.jp”でCSRを作成できます. 余談ですが, 「新しいドメインの追加」で最初からwwwがついた”www.tnrsca.jp”を追加できます. これでドメインの赤枠部分を空白にしてCSRを作成してもドメインが”www.tnrsca.jp”になります. しかし, マルチドメインとして使用した場合, ドメインが”www.tnrsca.jp”か”www.www.tnrsca.jp”になるので, 試してはいませんが, 最初からwwwがついた”www.tnrsca.jp”でCSRを作成しない方が良いでしょう. 私は当初, この考えに至らず, “tnrsca.jp”と”www.tnrsca.jp”のどちらでCSRを作れば良いかかなり迷いました.
2.SSLサーバ証明書の申込とコモンネームの確認
CSRを作成すると, 英数字の文字の羅列が出てくるので, それをクリップボードにコピーしておきます. 次に, プラン・支払い選択を済ますと, CSR(証明書情報)の内容確認になります. ここに作成したCSRを貼り付ける場所があるので, そこに先ほどクリップボードにコピーしたCSRを貼り付け, 右向きボタンをクリックするとコモンネームが表示されるので, このコモンネームが自分が利用するドメインと一致するかどうかを確認しておきましょう(当サイトの場合, ドメインもコモンネームもwww.tnrsca.jpとなる). スクリーンショットを取っていなかったのが悔やまれます. とりあえず, コモンネームをちゃんと確認しておかないと, 後で泣きを見ることになります….
3.認証用ファイルのダウンロードとアップロード
コモンネームを確認して, SSLサーバ証明書お申し込みが完了すると, 「SSLサーバ証明書 認証ファイルのアップロードについて」という件名のメールが送られてきます. このメールでは, 認証用ファイル(ファイル名が英数字のランダム配列で拡張子がhtmのファイル)のダウンロードとコモンネーム配下にアップロードを要求されます. 認証用ファイルのダウンロードは, 会員メニューの契約情報の一覧から該当サービスのサーバ証明書をダウンロードするだけです. 問題はアップロードで, 私はここでも迷いました. なぜなら, 当時, さくらインターネットのサーバーコントロールパネル(以下, サーバコントロールパネル)のファイルマネージャーでファイルのアップロードを行っており, そこに表示されるアドレスが/home/アカウント名/wwwなので, 指定されたコモンネームがどこに該当するか分からなかったからです. そこで, まずWordpressがインストールされているサブディレクトリ(/home/アカウント名/www/wp)に認証用ファイルをアップロードし, 次にルートディレクトリ(/home/アカウント名/www/)にアップロードして, 証明書の発行を待ちました. 最初からFilezillaなどのFTPソフトを使っていれば, こんなことで迷う必要はなかったんですけどね…. とりあえず, さくらのファイルマネージャーで認証用ファイルをアップロードする場合は, ルートディレクトリ(/home/アカウント名/www/)にアップロードします.
4.中間CA証明書とサーバ証明書のインストール
認証用ファイルが配置されたことを認証局が確認すると, 「ジオトラスト SSLサーバ証明書発行のお知らせ」という件名のメールが送られてきます. 今度は認証用ファイルをダウンロードした同じサイトからサーバ証明書をダウンロードします. ボタンが認証ファイルDLからサーバ証明書に変化しているのですぐに分かると思います.
次に, 中間CA証明書のダウンロードですが, ここで戸惑うのがRSA SAH-2とRSA SAH-1があり, さらにそれぞれにラピッドSSLとラピッドSSL ワイルドカードがあるために選択肢が4つもあることだと思います. まず, ワイルドカードは, 当サイトのドメインの場合, “tnrsca.jp”の前につけるサブドメインが無制限に利用可能です. 例えば, 今回の場合はwwwがサブドメインで, この部分を色々と変えてもそれぞれにSSL暗号化を行います. RSA SAH-1とRSA SAH-2に関しては, SAH-2がSAH-1より暗号強化を高めたものだそうです. なので, RSA SAH-2のラピッドSSLを選択します.
そうすると, 中間CA証明書が表示されるので, —–BEGIN CERTIFICATE—–から—–END CERTIFICATE—–までをコピーしてメモ帳などのテキストエディタに貼り付けて保存しておきます. ファイル名は自分が分かれば何でも良いです.
中間CA証明書のインストールは, まず上記でコピーした内容をサーバーコントロールパネルのドメイン設定で任意のドメインの「登録」をクリックして, 独自SSLの設定を開きます. そこにある「中間CA証明書のインストール」をクリックすると, テキスト入力エリアが表示されます. そのテキスト入力エリアに先ほどコピーした中間CA証明書の内容を貼り付けて「送信」ボタンを押すだけです. サーバー証明書のインストールは, まず会員メニューの契約情報からダウンロードしたサーバ証明書をメモ帳などのテキストエディタで開き, その内容をすべてコピーします. 今度は, 独自SSLの設定を開き, 「証明書のインストール」をクリックし, 中間CA証明書の時と同様に, コピーしたサーバ証明書の内容を貼り付けて「送信」ボタンを押すだけです. その後, サーバコントロールパネルのドメイン設定で任意のドメインを選択し, 「4. SSLの利用を選んでください」の「SNI SSLを利用する」を選択します. これで独自SSLとしてRapidSSLが利用可能になります. ただし, 現状では, “http://tnrsca.jp”を”https://tnrsca.jp”に設定しただけです.
HTTPS化するサイトのドメインの設定
以下のドメイン設定には次のサイトを参考にさせていただきました. 質問者のコメントにもしっかり答えておられるので, 私にとってはコメントが非常に役に立ちました.
参考サイト: さくらでURL正規化を正しく行うSSLの設定方法
1.wwwなし(tnrsca.jp)のドメインの設定
上記の設定では, “http://tnrsca.jp”を”https://tnrsca.jp”として使用できますが, “https://www.tnrsca.jp”として使えるわけではありません. 次に, マルチドメインの設定が必要です. マルチドメインの設定には, 「マルチドメインとして使用する(推奨)」と「wwwを付与せずマルチドメインとして使用する(上級者向け)」があります. 参考サイトでは, 「wwwを付与せずマルチドメインとして使用する(上級者向け)」に設定しているのですが, この場合, 「このサーバーは, さくらの~」というページになり, 自分のサイトに接続できませんでした. しかし, 参考サイトのコメントで私と同じ問題を抱えている人がおり, 「マルチドメインとして使用する(推奨)」に設定するとこのエラーが出ないとのことでした. 実際にこの設定にしてみると私のサイトでもさくらインターネットのページが表示されなくなりました. そのため, “https://tnrsca.jp”で使用する場合は, 「wwwを付与せずマルチドメインとして使用する(上級者向け)」を設定すればよいのですが, 今回は”https://www.tnrsca.jp”で使用するので, 「マルチドメインとして使用する(推奨)」を選択します.
この設定を行うことで, 以下のドメインが使用可能になります.
- tnrsca.jp
- www.tnrsca.jp
- http://tnrsca.jp
- http://www.tnrsca.jp
- https://tnrsca.jp
2.wwwあり(www.tnrsca.jp)のドメインの設定
次に, “www.tnrsca.jp”を”http://www.tnrsca.jp”のみで利用できるようにするための設定です. この設定を行うためには, “www.tnsca.jp”がサーバーコントロールパネルのドメイン設定に追加されていることが前提です. 参考サイトでは, 「マルチドメインとして使用する(推奨)」に設定されているのですが, 「wwwを付与せずマルチドメインとして使用する(上級者向け)」でもサイト接続に問題はないようです. この設定の場合, “www.www.tnrsca.jp”にアクセスすると「このサーバーは, さくらの~」というページになります.今回は, 「wwwを付与せずマルチドメインとして使用する(上級者向け)」に設定します.
”www.tnrsca.jp”ではまだSSLが有効になっていないので, “https://www.tnrsca.jp”として有効にするには, ”https://tnrsca.jp”と同様, 「4. SSLの利用を選んでください」の「SNI SSLを利用する」を選択します. これで独自SSLとして RapidSSL が利用可能になります.
この設定を行うことで, 以下のドメインが使用可能になります.
- tnrsca.jp
- www.tnrsca.jp
- http://tnrsca.jp
- http://www.tnrsca.jp
- https://tnrsca.jp
- https://www.tnrsca.jp (←これが新たに加わりました)
リダイレクト設定
これまでの設定では, 以下のドメイン全てが別々のドメインとしてアクセス可能です.
- tnrsca.jp
- www.tnrsca.jp
- http://tnrsca.jp
- http://www.tnrsca.jp
- https://tnrsca.jp
- https://www.tnrsca.jp
ただ, これらのドメインは別々のサイトとして扱われてしまうので, SEO対策を行う場合, 別々に管理する必要が出てしまいます. そこで, どのドメインでアクセスしても一つのドメインにアクセスされるようにリダイレクト設定を行う必要があります. リダイレクト設定は以下のサイトを参考にしました.
参考サイト:
1..htaccessの編集
.htaccessによってリダイレクト設定を行う際, 私の場合, ルートディレクトリとWordpressがインストールされたサブディレクトリのどちらにも.htaccessがあったため, どちらを設定すれば良いのか戸惑いました. ただ, 今回は, www.tnrsca.jpでアクセスした際にトップページを表示するようにしたいので, ルートディレクトリ(/home/アカウント名/www/)の.htaccessを編集します. WordPressがインストールされたサブディレクトリにトップページを表示したい場合は, サブディレクトリ(/home/アカウント名/www/サブディレクトリ名)の.htaccessを編集します. サブディレクトリの.htaccessを編集する場合は, 参考サイト2を読むと良いです.
# httpsリダイレクト設定 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://www.tnrsca.jp/\ [R=301,L] </IfModule>
2.wp-configの編集
Wordpressを利用する場合, wp-configの編集が必要になります. WordPressをhttps化する場合, WordPressアドレス(WordPressインストールされたサブディレクトリ)とサイトアドレスのアドレスがデフォルトでは”http”になっており, WordPressの管理画面かMySQL, あるいはwp-configのdefineのいずれかで”https”に変更する必要があります. 私の場合, 何も考えずにWordpressの管理画面からWordpressアドレスとサイトアドレスを変更してしまったので, MySQLから変更する方法を覚えざるを得なくなりました. なので, よくわからない場合はwp-configのdefineでWordpressアドレスとサイトアドレスを設定することをお勧めします.
話が逸れましたが, リダイレクトのためのwp-configの編集に関して, 当初は参考サイト2を基にして以下のようにwp-configの編集を行いました. しかし, 何故かサイトにアクセスできませんでした.
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; }
ただ, 参考サイト1と参考サイト3ではHTTP_HOSTとSERVER_NAMEが記入されていたので, 同様に変更したところ, サイトにアクセスできるようになりました.
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'www.tnrsca.jp'; $_SERVER['SERVER_NAME'] = 'www.tnrsca.jp'; $_ENV['HTTP_HOST'] = 'www.tnrsca.jp'; $_ENV['SERVER_NAME'] = 'www.tnrsca.jp'; }
最後に
今回, サイト全体をhttps化するにあたり, 色々なサイトを参考にさせていただきました. ただ, どうも「さくらインターネット」は, リダイレクトの方法に問題があるようで, ここまで書かれた内容をその通りにやっても上手くいくかどうかは分かりません. 実際, 同じサーバーでも他の人で上手くいった設定が私のサイトの設定では上手くいきませんでした. ひょっとしたら, 参考サイトが書かれた後にサーバー側に何かしらの変更があったからかもしれません. また, httpsとhttpとを繰り返し変更した際, しばらく待たないと変更が反映されない場合もありました. 単純なことですが, 待たずに色々と設定を変えてパニックになるということが自分では多々あります.
ただ, 待つという行動を制御する行為は, 結構難しいことなんですよね. たまにテレビで犬や猿などに「待て」を教えていて, 中々できない場面を見かけますが, 動物にとっては本来の行動を実行しようとしているだけなのに, 訳も分からずにその行動を制限されるので, 無理もないと思います. ところで, 人間でも脳の機能が低下してくると待てなくなります. 実際, 当施設の利用者さんで精神病のように脳の機能障害を抱えている人は症状が悪化してくると, 短気になり, 待てなくなります. そういう場合は, 休みを取って様子を見るよう, あるいは主治医に相談するように促します. 中には, こちらの注意も聞けないまでに悪化して, 再入院してしまった方もいます. 最近, イライラすることが多くなったり, 気が短くなったと感じている人は, ひょっとしたら脳の機能が低下して, 場合によっては病気の兆候かもしれないので, 注意した方が良いかもしれません.
追記(2018年3月5日)
RapidSSLの更新の更新を機にさくらのhttps化の設定方法が変更されました。
変更されたhttps化の方法に関しては、以下の記事を参考にしていただけたらと思います。
ただし、設定条件が異なる場合も考えられるので、設定を変更する場合は、自己責任でお願いします。