さくらサーバーで運営しているサイトの中で、特定ページ、一部ページをssl化することに取り組んでみました。
google広告
できたこと、できなかったこと(というかやらなかったこと)
先に少し結論を書いておきます。管理人はさくらサーバーでワードプレスによるブログ+独立したphpファイル(同じドメイン内別のフォルダ)を使って運営しています。
- サイト内の特定ページphp(ワードプレス外)のssl化 → ○
- ワードプレスで運用中の特定ページのssl化 → ×
1はできたけど、2はあきらめました。「特定ページ ssl ワードプレス」などと検索すると、WordPress HTTPS (SSL)というプラグインを使った方法がたくさん紹介されています。
しかし、このプラグイン、2年以上更新されていません。あなたもよくご存じのように、更新されていないプラグインを使うのは後々面倒です。
自分でもhtaccessなどを使って試してみましたが、urlを指定できてもワードプレス自体が、再コントロールする設定になっているようで、技術的にかなりハードルが高いと感じています。
もともとSSL接続はユーザーがウェブサイトを安全に利用するための技術なので、ユーザー視点から、一部ではなくすべてのページがSSL接続になっているほうがうれしいはずです。今回は、特定ページのみsslに対応させましたが、近くサイト全体のssl化に取り組みます。
ちなみに、このサイトはssl化の予定はありません。矛盾しますけど(笑)
さくらサーバからssl証明書(ラピッドssl)を取得する
管理人は、さくらのレンタルサーバ スタンダード
でサイトを運用しています。
会員向けメニュー コントロールパネルからログイン。ドメイン設定 → ssl化したいドメインの(証明書)登録のリンクをクリックします。
「秘密鍵を生成する」ボタンを押すと、CSRという、いわば登録票のようなものの記入欄が出てきます。米印は必須です。
ドメイン → www.example.com
会社名(例:有限会社ABC) → ABC Ltd.
国コード → JP
都道府県 → FUKUOKA
市町村 → FUKUOKA
例としてはこんな感じになるでしょうか? ここでよく注意喚起されるのが、ドメインwwwの有無です。Kenichi Suzukiさんは、www.付きでサイトを運営しているのに、www.なしで登録したので、再契約したという失敗談を書かれています。(参照:ブログの完全HTTPS化を完了、HTTPからHTTPSへの移行プロセスを共有 | 海外SEO情報ブログ)
この問題は、正直管理人にはよくわからなかったんですが、さくらのラピッドsslならwwwの有無にかかわらず大丈夫とわかったのでwww付きで登録しました。(参照:ラピッドSSL | さくらのSSL)
CSRの作成 → ラピッドsslのお申込み へと進みました。ほかのsslサービスを利用する方は、以下ちょっとお休み。(sslを取得されてください)
さくらサーバーの会員メニューログインから、ラピッドSSLの1年プランを選びました。1年にしたのは、万が一間違ってたり、やっぱりこのサービスは合わないという事態になっても被害が最小限に済むように。運用が安心できるなら、そこで長期契約するといいと思います。
入金が終わると、証明書が発行されサーバーにインストールする手続きする必要がありますが、この一連の手順でやった方は自動的にさくらサーバー側でインストールしてくれます。管理人のケースでは、朝イチで入金したら、午前中には全部終了していました。この素早い対応はうれしいところです。
www.付きドメインも登録する
あとは、さくらでURL正規化を正しく行うSSLの設定方法 – はるかのひとりごとを参考に、はるかさんの設定どおりやります。
これまでも、さくらで運営されていた方(運営ドメイン例 http://example.comとすると)は、example.comで登録してマルチドメイン運営を選択されていると思います。これに、上記リンクの説明通り www.付きのほうも登録し、www.なしの証明書をインストールします。
手順は、さくらのコントロールパネルログイン → ドメイン設定 → 新しいドメインの追加からドメイン追加を行います。(www.example.comを追加する)
管理人は他社でドメインを取得しているので、5. 他社で取得したドメインを移管せずに使う → ドメインの追加へ進む → www.付きのドメインを入力して送信。ここで、ちょっと時間かかるかも場合もあるので、ちょっとコーヒーブレイク。
www.example.com の 「登録」 から次の2つを登録します。
- 秘密鍵(すでに作成済(example.comで)のファイルをダウンロードして、こちらにもアップロードする)
- サーバーから発行された証明書を送信する
まず、example.com(wwwなし)の「登録」をクリックして、「秘密鍵のバックアップ」ボタンを押してファイル(秘密鍵)をダウンロードします。「server-key.pem」というファイルでした。これが1のアップロード用ファイル。
次に、さくら会員メニューログイン → 契約情報 → (一覧から証明書を取得したurl横の)サーバー証明書 → サーバー証明書ダウンロード(デスクトップにでも保存)「server.crt」というファイルがダウンロードされます。これが2のアップロード用ファイル。
次に、さくらのコントロールパネルログイン → ドメイン設定 → www.example.com の「登録」をクリックして、「秘密鍵を既にお持ちの場合には、アップロードをしてください。」ファイルを選択のボタンを押して、先ほどダウンロードした、1のserver-key.pemファイルを選んでアップロードします。
次に、証明書をアップロードする画面が出てきます。server.crtファイルを テキストエディタ(管理人の場合 秀丸)で開いて中身をコピーペースト(全部選びます)し送信すると、設定が完了します。
あとは、さくらでURL正規化を正しく行うSSLの設定方法 – はるかのひとりごと この通りにssl設定とマルチドメイン設定を行います。設定ボタンを押してから完全に反映されるまで、少し時間がかかる場合もあるようですので、ここでまたコーヒーブレイク。
ここまで無事に終われば、サイト全体はhttp://接続、https://接続どちらでも行けるようになっています。
htaccessの書き込み
次にルート直下のhtaccessに以下の内容を書き込みました。
http://example.com/folder/test1.php → https://example.com/folder/test1.php
この1ファイルのみssl化するという内容。管理人はルート直下に、folderというフォルダとwordpressというフォルダを持っていて、wordpressは文字通りwordpressを運営しています。でfolderに入っている指定したファイルのみssl化設定します。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^(.*)/folder/test1\.php(.*)$ RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] RewriteCond %{REQUEST_URI} !(^(.*)/folder/test1\.php(.*)$) RewriteCond %{REQUEST_URI} !(^(.*)\.gif$) RewriteCond %{REQUEST_URI} !(^(.*)\.jpg$) RewriteCond %{REQUEST_URI} !(^(.*)\.css$) RewriteCond %{REQUEST_URI} !(^(.*)\.png$) RewriteCond %{REQUEST_URI} !(^(.*)\.js$) RewriteCond %{HTTP:X-Sakura-Forwarded-For} !^$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] </IfModule>
ワードプレスを運用中の方は以下のような内容がすでに入っていると思います。(中身はサイトによって異なります。)この上に記載してアップロードしました。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
cssやjpgファイルでのssl化呼び出し方法は、特定のページだけSSLにする方法 – UDONCHAN こちらのサイトさんから教えていただきました。これがないと、chromeではcssなどもブロックされるんですね。
あとは、google mapsや画像など、http://で呼び出しているものを、https://など適切な形に書き換えれば作業終了。ブラウザのurlのところに、きれいな鍵のついたページが出てきます。
とりあえずssl化したいページを別ファイルで作るのもありかも
今回は一部のページのみssl化しましたが、いずれはサイト全体でssl化したほうがいいのは分かってますし、そうしようと思っています。
ただ、ssl化は意外に手間がかかる側面もありますので、必要なページをとりあえずこの方法で仮移動しておいてから、準備を進めるというのもいいかもしれません。
管理人もやってみるまでは、ssl化なんてほんとうに自分ができるんだろうか?と不安でしたが、手順を踏んでみて行けそうだという自信も出てきました。
ssl化関連記事
google mapsで現在位置情報が取得できない原因がわかりました
iphone7に機種変更して、運営しているサイトを見たとき気が付きました。google mapsで現在地が取得できないんです。 iOS10以上の端末、およびグーグル クロムブラウザでは・・・ 以前から、パソコンでもできな […]
2016年10月21日さくらサーバで特定ページのssl化を行う
さくらサーバーで運営しているサイトの中で、特定ページ、一部ページをssl化することに取り組んでみました。 できたこと、できなかったこと(というかやらなかったこと) 先に少し結論を書いておきます。管理人はさくらサーバーでワ […]
2016年10月21日送信されたデータは、このサーバで利用できない証明書です に対応する(さくらサーバ)
サイトのssl化をしていた時、ちょっとハマったというか困ったことがありましたので、記事にします。文字通り、「送信されたデータは、このサーバで利用できない証明書です」と表示され、証明書がインストールできないんです。(さくら […]
2016年10月21日サイト全体のssl化を行う(ワードプレス さくらサーバ)
サイトの一部をssl化するという流れについて、以前に記事にしました。(参照:さくらサーバで特定ページのssl化を行う)管理人は、自分のサイトに2つのフォルダを持っていて、一つのフォルダでワードプレスを運営。もう一つは、p […]
2016年10月23日ssl化、iOS10端末、iphone7などで「安全でないリソースが含まれている」表示の時、ここをチェック
SSL化して、windows10パソコンではブラウザ(chrome、Edge、Fire Fox) どれでも、url欄にきれいな鍵が出ている。それなのに、手持ちのiphoneで、chrome、safariで見ると、「安全で […]
2016年10月25日https接続にしたらBackwpupでエラー。ジョブが開始されましたが、10秒間応答しません。(さくらサーバーの場合)
一度ssl化したら、ほかのサイトも同じ手順で簡単だろうとタカをくくっていたんですが、サイトごとに雨後の筍のように問題が出てくるのは辟易します。今回は表題通り、ssl化したらBackwpupが止まって動かないという問題。 […]
2016年10月27日ssl化後の自分のサイトへのリンクはできるだけ、「http:」を省いたほうがよさそう
ssl化したのち、読み込む画像やjavascriptのurl「http:」部分、丁寧に拾って削除するか「https:」に変換しました。しかし、テキストのアンカーリンク部分はhttp:のままにしていました。単にブラウザに表 […]
2016年11月04日さくらサーバー、ラピッドsslの更新手続きを行ってみた
さくらサーバーで、ラピッドsslを導入して1年経ちました。更新手続きの案内が来たのでやってみたんです。サーバーの設定を自分でやり直す必要があるのがちょっと面倒ですね。 契約年数を決める さくらサーバのコンパネから手続きを […]
2017年09月12日