簡略版!mixhostサーバーでWordPressをSSL対応(HTTPS化)させる方法

SSL対応サイトを開設したいならmixhostは有能サーバーです。

というのもmixhostでは、SSL証明書世界シェアNo.1のCOMODO社を認証局に採用した、独自SSLを無料で利用でできるからです。

しかも、その利用方法が簡単でネームサーバー変更後、暫く待ってウェブサイトのURLを「http://~」から「https://~」に変更してブラウザで表示させるだけという手軽さです。

また、mixhostは、レンタルサーバーではHTTP/2に対応しているので、SSL化することで、通信効率も上がりページの表示速度も上がります(日本のレンタルサーバーでは初)。

正直、mixhostを利用しているのなら、HTTPSページにしない手はないと思います。

ということで以下では、「WordpressサイトをSSL対応させる方法」について紹介したいと思います。

スポンサーリンク
レクタングル(大)広告

主な手順

WordPressサイトをHTTPSにするのに必要な主な手順は以下です。

  1. ブラウザでURLをhttpsに変更する
  2. WordPressのアドレス設定を変更する
  3. リダイレクト設定をする
  4. コンテンツの内部リンク等を変更する(コピペ)

以前エックスサーバーでSSL対応した方法は以下で書きました。

エックスサーバーが独自SSLを無料かつ無制限で利用できるようになりました。 この、エックスサーバーの「ユーザーにどんどん利便性...

今回の方法は、上記方法より以下の点において手順が簡略化されています。

  • mixhostではSSLの設定が不要なこと
  • 外部リンクURL等の変更をPHP処理で表示させた(手動で置換が不要になった)

これにより、「面倒なSSL対応」が「少し面倒なSSL対応」ぐらいにはなるかもしれません。

ブラウザでURLをhttpsに変更する

まず、mixhostにサイト作成(及び移行)をすると、ドメイン登録をして、ネームサーバーの変更を行うと思います。

そのネームサーバー設定の変更をすることで、「mixhostでは何もしなくてもSSLが利用できるよう自動設定」されます。

ほんと、ここらへんはサイト運営者は何もする事がありません。

SSL設定の反映を待つ

ただ、SSL設定が反映されるには、ネームサーバーの変更から24~72時間程度必要なので、しばらく待つ必要があります。

ブラウザのURLを変更する

ネームサーバの変更からある程度時間が経ったら、ブラウザのアドレスバーに表示されているURLを「http://~」から「https://~」に変更してページを表示させます。

当サイトを例にすれば「http://nelog.jp/」から

通常のhttp表示[4]

https://nelog.jp/」にしてブラウザ表示させる感じです。

アドレスバーにHTTPSと入力するだけでSSL化[12]

このように、SSL対応するに当たって、取り立てて運営者がサーバー設定ですることは、何一つありません。

SSL設定が反映されていない場合は、ブラウザでエラー画面が出ると思います。そういった場合は、時間を空けて試してみてください。

WordPressのアドレス設定を変更する

次に、Wordpressにログインして、管理画面を表示します。

メニューから「設定」→「一般」を選択します。

SSLに対応するため一般設定のアドレスを変更する

「一般設定」画面が開いたら「Wordpressアドレス(URL)」と「サイトアドレス(URL)」部分を変更します。

SSL化させるために一般設定を開く

以下のように、httpと表示されているアドレスを

SSL対応前の寝ログのアドレス設定

以下のようにhttpsに変更します。

SSL対応後の寝ログのアドレス

リダイレクト設定をする

あとは、FTPなどで.htaccessファイルを開いてコード上部に、以下をコピペで記入します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

これは、httpに来たアクセスをhttpsページにリダイレクトさせるコードです。

mixhostサーバーの場合、「/public_html/ドメイン/」にあります。

mixhostサーバーで.htaccessファイルの場所

mixhostのcPanelのアドオンドメイン設定でドキュメントルートを変更した場合は、.htaccessのあるフォルダは、設定したテキストになります。

.htaccessファイルは、編集に失敗するとサイトに重大なエラーを引き起こする可能性がありますので、バックアップを取ってください。何か不具合があった際は、そのバックアップファイルを元に復元してください。

コンテンツの内部リンク等を変更する(コピペ)

ここで通常なら、「Search Regexプラグインを用いて投稿本文内を一括置換する」という手法を用いています。

Search Regexプラグイン

WordPressデータベース内の文章を一括で検索したり、置換したりすることができるプラグイン。

Search-Regex

ただ、それだと手間なので、PHPコードで一括置換できるコードを書きました。

使用中のテーマ(子テーマ)のfunctions.phpに、以下のコードをコピペするだけでOKです。

//コンテンツ内の非SSL URLを表示前にSSL化する
function chagne_site_url_html_to_https_ex($the_content){
  //httpとhttpsURLの取得
  if (strpos(site_url(), 'https://') !== false) {
    $http_url = str_replace('https://', 'http://', site_url());
    $https_url = site_url();
  } else {
    $http_url = site_url();
    $https_url = str_replace('http://', 'https://', site_url());
  }
  //投稿本文の内部リンクを置換
  $the_content = str_replace($http_url, $https_url, $the_content);
 
  //AmazonアソシエイトのSSL化
  $search  = 'https://images-fe.ssl-images-amazon.com';
  $replace = 'https://images-fe.ssl-images-amazon.com';
  $the_content = str_replace($search, $replace, $the_content);
 
  //バリューコマースのSSL化
  $search  = 'https://ck.jp.ap.valuecommerce.com';
  $replace = '//ck.jp.ap.valuecommerce.com';
  $the_content = str_replace($search, $replace, $the_content);
  $search  = 'https://ad.jp.ap.valuecommerce.com';
  $replace = '//ad.jp.ap.valuecommerce.com';
  $the_content = str_replace($search, $replace, $the_content);
 
  //もしもアフィリエイトのSSL化
  $search  = 'https://af.moshimo.com';
  $replace = '//af.moshimo.com';
  $the_content = str_replace($search, $replace, $the_content);
  $search  = 'https://i.moshimo.com';
  $replace = '//i.moshimo.com';
  $the_content = str_replace($search, $replace, $the_content);
  $search  = 'https://image.moshimo.com';
  $replace = '//image.moshimo.com';
  $the_content = str_replace($search, $replace, $the_content);
 
  //A8.netのSSL化
  $search  = 'https://px.a8.net';
  $replace = 'https://px.a8.net';
  $the_content = str_replace($search, $replace, $the_content);
 
  //アクセストレードのSSL化
  $search  = 'https://h.accesstrade.net';
  $replace = 'https://h.accesstrade.net';
  $the_content = str_replace($search, $replace, $the_content);
 
  //はてなブログカードのSSL化
  $search  = 'https://hatenablog-parts.com/embed?url=';
  $replace = 'https://hatenablog-parts.com/embed?url=';
  $the_content = str_replace($search, $replace, $the_content);
 
  //ここに新しい置換条件を追加していく
 
  // //のSSL化
  // $search  = '';
  // $replace = '';
  // $the_content = str_replace($search, $replace, $the_content);
 
  return $the_content;
}
add_filter('the_content', 'chagne_site_url_html_to_https_ex', 1);

このコードの詳細や、新たな条件を追加する方法は、以下の記事を参照してください。

以前、WordpressサイトをSSL化する手順を紹介しました。 この中の工程で一番作業が面倒くさくて危険なのが「内部...

このコードを利用すると、手動による置換作業は不要になるので、かなり設定は楽になると思います。うまくいかない場合は、貼り付けたコードを削除するだけで元に戻りますし。

この方法の利点と難点

今回紹介した方法の利点はこちら。

  • データベースを書き換えるわけではないので重大な失敗をしづらい
  • 失敗したとしてもカスタマイズ箇所を削除すると元に戻る
  • 比較的手順が簡単

しかし反面、こんな難点もあります。

  • ページを開く毎に毎回置換処理が行われるのでサーバーの負担が多少上がる
  • 置換処理の分ページが表示される時間が遅くなる(※今回程度の置換であれば僕の環境で計測したところ0.0何秒未満ではあるけど。またページキャッシュプラグインを使うことで、ある程度対応も可能)

これらを踏まえた上で、サーバーの負荷を増やしたくないのであれば、次で紹介する方法などを行うことをおすすめします。

その他の設定

サイトをSSL化するとそれまで使用していたツールやWEBサービスの設定を変更する必要も出てくるかと思います。

そういった、ツール・サービスの変更については以下に書いてあるので、当てはまるものの再設定をしてください。

エックスサーバーが独自SSLを無料かつ無制限で利用できるようになりました。 この、エックスサーバーの「ユーザーにどんどん利便性...
先日、サブサイトをSSL化しました。 すると、SSL化前の「httpアドレス」でGoogle Search Conso...
もちろん、上記記事に書かれているもの以外でも利用状況によっては設定が必要になるサービスもあると思います。

まとめ

こんな感じで、当サイトをSSL対応させることができました。

Chromeで保護された通信(寝ログ)

mixhostサーバーのSSLを利用し、「非SSL URLをSSL対応に置換するコード」を利用することで、かなりSSL化手順が簡略化されたのではないかと思います。

やっぱり、mixhostでHTTPS表示するとHTTP/2(通信の効率を良くして表示速度が向上した通信プロトコル)が利用できるので、サイトの高速化にも一役買うのはありがたいです。

mixhostサーバーを利用しているのであれば、これを利用しない手はないと思います。

というわけで「mixhostを利用しているけどSSL対応の仕方がよくわからない」とか「HTTP/2対応されている日本初のレンタルサーバでSSL対応する方法を知りたい」なんて場合は、この記事が参考になれば幸いです。

サイト mixhost

参考 WordPressのSSL対応方法 – mixhostサポートサイト

参考 無料独自SSLのご利用方法 – mixhostサポートサイト

『簡略版!mixhostサーバーでWordPressをSSL対応(HTTPS化)させる方法』へのコメント

  1. 名前:Smithfield 投稿日:2017/06/04(日) 10:40:52 ID:b4a540daa

    わいひらさん、お久しぶりです。
    mixhostを利用している私のサイトでも.htaccess で、http → https のリダイレクトを行っていましたが、どうもこれが、SSL証明書の更新の妨げになるようです。

    今朝から、私のサイト(pcguide.jp)でエラーが発生したのでググった所、下記サイトが引っかかりました。
    https://hiko.blog/568

    mixhostサポート上でも、リダイレクトには、Really Simple SSLの利用を推奨しているようです。
    https://support.mixhost.jp/348

    先程サポートに連絡しましたが、今現在、SSLの証明書が発行されていない状態が続いています。

  2. アバター画像 名前:わいひら 投稿日:2017/06/04(日) 12:46:07 ID:65f16a4bd

    SSL証明書の更新を待つ必要があるのではないかと思います。
    一応記事の方にも、以下のように案内は一応書いてあります。

    とりあえず、SSLが発行されるまでは、.htaccessを編集しない(編集している場合は元に戻す)でダメなのでしょうか?
    僕はその方法で、問題ありませんでした。

  3. 名前:なぎそら 投稿日:2017/09/28(木) 13:14:29 ID:fb40aaf9e

    こんにちは。

    私のサイトでも証明書の更新が上手く行かない問題が発生しました。
    解決したのでコメントにて情報共有させて頂きます。

    <状況>

    ・mixhostで運営している私のブログ4mirai.comを、2017年7月頃にこの記事を参考にHTTPS化を実施。正常動作を確認。
    ・2017/09/28 ブログを見ると「この接続ではプライバシーが保護されません」という表示が出てサイトが正常に閲覧できなくなった。

    <対策>

    同じ様な事が起きているようで、解説サイトがありました。
    ので、以下のサイトを参考に対策を実施。

    mixhostのSSL証明書が更新されずに「この接続ではプライバシーが保護されません」の表示が出た時の対処法

    具体的には、

    ・.htaccessをWordPressインストール直後のものと置き換え

    ました。

    そしてこれを行った後、2時間経過したくらいでサイトが正常表示されるようになりました。

    <今後のSSL化について>

    ・リダイレクト処理を.htaccessに直接記述することをやめ、「Really Simple SSL」でリダイレクトすることにしました。
    ・Simplicityの簡易SSL対応機能はONにしています。(上記プラグインと併用して良いのかは良く分かりません)

    ちなみに私の.htaccessには、セキュリティプラグイン「SiteGuard WP Plugin」「Wordfence Security」と「コピペで一発!Simplicity高速化」を追記していましたので、リダイレクトではなくこれらのいずれかが悪さをしている可能性も考えられます。

    <まとめ>

    何にせよ、証明書の更新が上手く行かずサイトが見れなくなったら.htaccessを初期状態(不要な記述を削除する)事をお試しください。

    ※あくまで私の場合での解決方法です。全ての方に当てはまるとは限らないので、ご了承下さい。

  4. アバター画像 名前:わいひら 投稿日:2017/09/29(金) 17:30:44 ID:81982c114

    そんなことになることがあるんですね。
    一応、当記事の.htaccessのリダイレクト記入は、当時mixhostが推奨していたコードと同じだったことは確認しています。
    ただ、現在mixhostのブログなどを見てみても、.htaccessのコードは見当たらず、「Really Simple SSL」を利用した方法のみになっているのを見ると、プラグインを使用した方が良いのかもしれませんね。

    僕も、同様の状態になることがあれば、.htaccessをまず疑ってみます。
    詳しい解説、ありがとうございます!

  5. 名前:インパラ 投稿日:2017/10/23(月) 16:51:18 ID:6129acc12

    お世話になっております。

    寝ログを参考にしてSSL化がなんとか出来ました。

    初心者でありますが、丁寧に記載してあったので非常に助かりました。

    1つ質問なのですが、「リダイレクト設定をする」この方法で被リンク部分もこれで対応出来ているということでいいのでしょうか?

  6. アバター画像 名前:わいひら 投稿日:2017/10/24(火) 20:16:02 ID:1ad03d38f

    記事がお役に立てたようでよかったです。
    httpで受けている被リンクであれば、他のURLが変わっていなければhttps URLに301リダイレクトされると思います。

  7. 名前:パイヒラ 投稿日:2018/05/02(水) 21:33:24 ID:91db15ed5

    WordPress を 常時SSL化する手順 | 総合サービス WEB開発備忘録

    上を見たら テーマを変えるとエラーになるみたいなことが書いてあったですが、
    これは 子テーマを作ればよいとのでしょうか?

  8. アバター画像 名前:わいひら 投稿日:2018/05/07(月) 11:36:48 ID:0298d5407

    テーマを変えるとエラーが出るわけではなくて、SSL化処理が行われなくなるだけかと思います。
    テーマを変えた場合、記入したカスタマイズ処理が行われなくなるので。
    テーマを変える場合は、同様のカスタマイズを変更先のテーマ(子テーマ)でも行う必要があります。

    子テーマは、同系のテーマでないと意味がないので、子テーマを作ってカスタマイズ処理を書いても、新しいテーマには適用されません。

  9. 名前:ゆー 投稿日:2018/07/12(木) 08:15:26 ID:a5a03ddf3

    こんにちは!
    Wordpress初心者で、リダイレクトの設定について教えて欲しいのですが、
    Wordpressを新規で作った場合もリダイレクトの設定は必要なのでしょうか?
    それとも、httpのサイトを運営していてhttpsのサイトに移行する場合はリダイレクトの設定が必要なのでしょうか?

  10. アバター画像 名前:わいひら 投稿日:2018/07/12(木) 22:10:11 ID:6d460a123

    最初からhttpsのURLでWordpressを設定したのであれば、リダイレクトは不要かと思います。

    それとも、httpのサイトを運営していてhttpsのサイトに移行する場合はリダイレクトの設定が必要なのでしょうか?

    そうですね。元々、httpで集めていたリンクジュースをhttpsに移すために行います。なので最初からhttpsでサイト運営していた場合は、最初からhttps URLに対してリンクが貼れますので、リンクジュースを流す必要はないかと思います。

    けれど、リダイレクト設定したとしても、特に問題もないと思います。

  11. 名前:山下 投稿日:2018/08/17(金) 15:57:02 ID:4a2916297

    はじめまして。
    いつも有益な情報をありがとうございます。

    今回の記事で書かれていた「.htaccess」への
    記述について質問がございます。

    今回の「.htaccess」への記述は
    「SSL化する前がwww無しで、SSL化後もwww無しにする場合」に当てはまると思いますが、
    以下の
    「SSL化する前がwww無しで、SSL化後にwww有りにする場合」
    「SSL化する前がwww有りで、SSL化後もwww有りにする場合」
    「SSL化する前がwww有りで、SSL化後にwww無しにする場合」
    の3つのパターンについても、
    「一般設定」の「Wordpressアドレス(URL)」「サイトアドレス(URL)」
    が希望のURLになっていれば、そのまま同じ「.htaccess」の記述で大丈夫でしょうか?

    中古ドメインだと
    www有りに被リンクが付いていることが多いので気になりました。

    お手数がございますが、教えていただけますでしょうか。

    どうかよろしくお願いいたします。

  12. アバター画像 名前:わいひら 投稿日:2018/08/17(金) 23:58:47 ID:03a72aff6

    同じではダメだと思います。
    当ページのリダイレクトコードと、以下のページでのサンプルコードの合わせ技で書く必要があるかと思います。
    httpからhttpsにリダイレクト、www有無のリダイレクト方法(mod_rewrite) | レンタルサーバーのCPIスタッフブログ
    www有無・SSL(https)有無のリダイレクト書き方サンプルコード | SEO対策に「アクセス中古ドメイン」

  13. アバター画像 名前:わいひら 投稿日:2018/08/18(土) 00:00:08 ID:d1302a3ba

    「SSL化する前がwww有りで、SSL化後もwww有りにする場合」

    これだけは、当ページの.htaccessコードでも良いような気がします。