
こんにちは、管理人のけーちゃんです。
mixhostはアズポケット株式会社が運営するレンタルサーバーです。mixhostはSSL化の仕組みが導入されており、手順を守れば容易にSSL対応したWebサイトを公開できます。
SSL対応したWebページはURLが「https://」から始まります。「http://」から始まるWebページはSSLに対応していません。
SSLはブラウザとサーバー間のデータ通信を暗号化することで、個人情報やクレジットカードなどの支払い情報等の重要な情報を保護する仕組みです。現在は無料SSLがレンタルサーバーで気軽に利用できるようになり、情報のやり取りをおこなわないWebサイトでも当たり前のように導入されています。
またブラウザでSSL化されていないサイトを表示すると「安全でない」「保護されていない」等の情報が表示され、Webサイトに不正があるかのような印象を閲覧者に与えます。この点でもSSL化が必須です。

mixhostは自動でSSL化されます。しかしながらSSL化に失敗し「この接続ではプライバシーが保護されません」と警告される事態に直面することもあります。
今回はmixhostでSSL化に失敗する原因と、失敗時の対処法についてお伝えします。
\目次も見てね!/
mixhostのSSL証明書認証の仕組み
最初にmixhostに追加したドメインをSSL化する際の仕組みについて、お伝えします。
SSL化されたWebサイトをブラウザで表示する際に、必要な情報が記述されたSSL証明書が使用されます。この証明書は、ドメインが実在することを確認後にサーバーにインストールされます。
ドメインの実在確認は、ドメイン内に「.well-known/pki-validation」という名前のディレクトリ(フォルダ)とその中にランダムな名前でテキストファイルを作成します。作成されたディレクトリとファイルはドメイン追加後にmixhostのファイルマネージャで確認できます。


ドメイン追加から実在の確認開始まで少し時間がかかるようです。ディレクトリとファイルは開始まで作成されません。
ディレクトリとファイルを作成したら、外部からURLでアクセスします。ドメイン名が kc-mixh.com なら、http://kc-mixh.com/.well-known/pki-validation/ランダムな名前.txt です。

この時点では https://を使えないので、http://でアクセスします
該当URLにアクセスして想定した結果が得られたら、SSL証明書がインストールされます。
mixhostの無料独自SSLは自動設定される
mixhostにドメインを追加すると、自動でドメインの実在確認が行われSSL証明書がインストールされます。これはサブドメインでも同様に行われます。
保有しているドメインが多いなど状況によっては完了まで時間がかかることがありますが、基本的には待っているだけでSSL化が完了します。

SSL化に失敗していると、いつまでたっても終了しないので状況確認しましょう
SSL有効化の確認
mixhostは追加したドメインのSSL導入結果を確認することができます。mixhostでのサイト作成に慣れていれば必要ありませんが、それまではSSL化が成功しているのか確認しないと心配だという人も多いです。
mixhostは次の手順でSSLのインストール結果を確認できます。
- cPanelにログインする
- セキュリティ欄のSSL/TLSステータスをクリックする
SSL証明書がインストールされドメインのSSLが有効化されている時は、次のように緑色のアイコンと「AutoSSLドメイン検証済み」が表示されます。

mixhostでSSLが有効化できなかったときは、赤色のアイコンとエラー内容が表示されます。

エラー内容は状況によって異なります。上記のエラーは要約すると、「pki-validation内のファイルを参照しようとしたら404エラーだった。ドメインのIPアドレスがmixhostのサーバーではないようだ」という意味です。

なおSSL/TLSステータスのリストは、ドメインの実在確認実行後に表示されます。リスト内に確認したいドメインが表示されていない場合は、処理が終わるまで待ちましょう。
mixhostのSSL自動設定失敗パターン
mixhostの無料SSLインストールが失敗する原因を挙げます。原因を取り除かない限りSSL化が有効にならないので、一つずつ確認してください。
原因1:mixhostのネームサーバに変更していない
mixhostのSSL化失敗で一番多い原因は、ネームサーバーをmixhostのネームサーバーに変更していないことです。ネームサーバーが他のWebサーバーを参照していると、pki-validation内のファイルをURLで参照できないからです。
mixhost以外のドメインサービスでドメインを取得した場合、できる限りすみやかにネームサーバーをmixhostのネームサーバーに変更しましょう。mixhostのネームサーバー設定については、次の記事を参考にしてください。

ドメインを追加する前に必ずネームサーバーを変更しましょう。ただし変更してもすぐには反映されません。反映を待ってからドメインを追加しましょう。反映確認は上記リンク先を見てください。
原因2:ドメイン名を間違えている
mixhostのSSL化失敗で二番目に多い原因が、追加したドメインの名前が正しくないパターンです。意外と多いので確認してみてください。

何度確認しても合っているように見えてしまうことがあります。自分で入力しないでコピペを活用しましょう
原因3:アクセス不可な設定をしている
新規でWebサイトを作成するようなケースでは当てはまりませんが、他のレンタルサーバーからmixhostに引っ越しをしてきた場合など、特殊な設定を引き継ぎことがあります。例えば「URLでのアクセス時にパスワードが必要」「テキストファイルを表示させない」「IPアドレスでのアクセス制限」などです。
制限の確認は、mixhostのファイルマネージャ等で「.well-known/pki-validation」ディレクトリ内に適当な名前でテキストファイルを作成して、ブラウザでアクセスすることで可能です。確認出来たら作成したファイルを削除してください。
mixhostはSectigoという企業のSSL証明書を使用しているため、この企業のサーバーからドメイン検証アクセスされます。おそらく海外からのアクセス(未確認)なので、海外からのアクセスをブロックしている場合は解除して様子を見てください。

.htaccessやBasic認証など専門的な知識が必要ですね。わからない人は、サポート外かもしれませんがmixhostのサポートに確認する、または知っていそうな人に質問してください。
原因4:ドメイン名に問題がある
jpやcomなどのトップレベルドメインと.(ドット) を含めたドメイン名が64文字より多い場合、SSL化できません。サブドメインをSSL化するときは、サブドメインも含めた文字数が64文字以下である必要があります。

日本語ドメイン(Punycode)は「xn--」で始まるコードで文字数をカウントします。文字数が多くなる傾向があるので、文字数オーバーしている可能性がありますね。
また、特定のトップレベルドメインを使用したドメインもSSL化できません。これは状況によって変化するようです。次のリンク先(英語)を確認してください。

日本でメジャーなドメインを使っていれば大丈夫です
mixhostのSSL証明書を手動で発行する方法
mixhostでのSSL化失敗原因を解消すると、24から72時間程度経過後に自動でドメイン検証が行われSSL証明書がインストールされます。

待てません。もっと早くしてほしいです
少しでも早くドメイン検証を開始する場合は、SSL/TLSステータス画面(SSL有効化の確認の画面)の上部にあるをクリックします。

少し待つと(通常30分以内)にドメイン検証が行われSSL証明書がインストールされます。
無料SSLの有効期限と更新
mixhostも含めてSSLには有効期限があります。mixhostの無料SSLの有効期限について公式な発表はありません。しかし期限の三日前にSSLが更新されるので、有効期限を意識する必要はありません。

SSLの有効期限確認すると、有効期限は約三か月です。
ただし初回の導入と同様に、ドメイン検証がおこなわれます。そのため「.well-known/pki-validation」ディレクトリ内のテキストファイルにURLでアクセスできる状態を維持しておく必要があります。アクセス制限等、特殊な設定は慎重におこないましょう。
WordPressをSSL化する方法
WebサイトをWordPressで構築している場合、ドメインをSSL化したらWordPressもSSLに対応させる必要があります。
WordPressをmixhostの「Softaculous apps installer」でインストールしている場合、URLに「https://」を指定してあればSSLに対応できています。


デフォルト値が「https://」なので、ほとんどのWebサイトが対応できているはずです。
他のWebサーバーからmixhostに引っ越しをした場合でも以前のサーバーでSSL対応できていたなら、そのままで問題ありません。
WordPressのSSL対応は、URLを「http://」から「https://」へ変更する作業です。基本的には管理画面の一般設定でサイトアドレス(URL)を「https://」に変更するだけです。

さらに、画像やcssおよびjsファイルなどのURL指定が「https://」である必要があります。こちらについては上図のサイトアドレスとファイル名の組み合わせが使用されるため、対応する必要がありません。しかし古いWebサイトは手入力で「http://」が記述されているものがあります。このようなケースでは、内容を「https://」に書き換える必要があります。

手作業で変更してもいいですが、「Really Simple SSL」等のプラグインを使用すると自動で変更できます。
mixhostの強制HTTPSリダイレクト設定
WordPressのSSL化をおこなうと、一つの記事ページにつき「https://」と「http://」のから始まる二つのURLが有効になります。SSLに対応していないページの公開を避ける意味で、現在は「http://」へのアクセスを「https://」に変更するWebサイトが多いです。

Webサーバーで、URLを異なるURLに変更することをリダイレクトと呼びます
リダイレクトは、.htaccessファイルにコマンドを記述して設定するのが一般的ですが、mixhostは「http://」から「https://」へのリダイレクトをcPanel上で設定できます。
- cPanelにログインする
- ドメイン欄のSSL/TLSステータスをクリックする
- 強制HTTPSリダイレクトをオンにする
設定後しばらく待つとサーバーに反映され、「http://」へのアクセスが「https://」へリダイレクトされるようになります。

強制HTTPSリダイレクトの左のリダイレクト先は、個別のページ単位でのリダイレクトです。右端の管理ボタンで設定できます。
SSLの有効期限確認
SSLの証明書は有効期限があります。有効期限が切れると、SSL証明書が使用できなくなり、ブラウザで「https://」にアクセスすると、「この接続ではプライバシーが保護されません」と警告されます。
mixhostの無料SSLは期限切れの三日前に自動で更新されます。したがって、有効期限を把握する必要がありません。
しかし何らかの理由で有効期限を確認することがあります。確認はブラウザでおこなうことができます。mixhostのcPanelにログインする必要が無いので、一度確認してみてください。
有効期限の確認はパソコン上で次の手順でおこないます。手順では、Google Chromeを使用しています。表現が異なりますが、他のブラウザでも同様の手順で確認できます。
- 「https://」ページをブラウザで表示する
- URL欄左のマークをクリックして表示された「この接続は保護されています」をクリックする
- 「証明書は有効です」をクリックする
- SSL証明書の内容が表示されるので有効期限をかくにんする

約三か月ですね
まとめ
この記事では次の用語を紹介しました。
- SSL: ブラウザとサーバー間のデータ通信を暗号化する仕組み
- https://: SSLに対応したWebページのURLの頭文字
- http://: SSLに対応していないWebページのURLの頭文字
- SSL証明書: SSLに対応したWebページをブラウザ表示する際に必要な情報が記述されたもの
- .well-known/pki-validation: ドメイン実在確認時に作成されるディレクトリ
- リダイレクト: WebサーバーでURLを異なるURLに転送すること
- HTTPSリダイレクト: http://へのアクセスをhttps://に転送すること
またドメインをSSL化する際は、次の点を注意する必要があります。
- ドメインにmixhostのネームサーバーを割り当て設定をおこない、反映されるまで待つこと。
- サブドメインを含めて64文字以内であること。日本語ドメインはxn--形式の文字数でカウントされる。
- 転送設定やIPアドレスのブロックなどで.well-known/pki-validationへのアクセスを妨げていないこと。
- 禁止されているトップレベルドメインでないこと
さらに、次のような点についてお伝えしました。
- ネームサーバー割り当て後にドメインを追加すれば自動でSSL化される
- SSLの有効化確認は、SSL/TLSステータスで行う
- SSL証明書の手動発行は、SSL/TLSステータスで行う
- 無料SSLは有効期限の三日前に自動更新される
- HTTPSリダイレクト設定は、ドメイン一覧で行う
- SSL証明書の有効期限はブラウザで行う
- WordPressのSSL化作業は、基本的には必要ない
ドメインのSSL化が終わりWordPressのインストールしたら、いよいよWebサイトの運営が始まります。運営目的は人それぞれですが、良い記事を書いて多くの人に閲覧してもらえるように頑張りましょう。