ka2.orgにSSLを導入する・前編

GoogleがSSLを導入しているサイトを検索エンジンでの評価で優遇すると発表してからしばらく経つが、だいぶSSLに対応するサイトが増えてきた感じがする。私的には昨年Mozillaが無料のSSL証明書技術を提供すると発表したこともあって、それまでSSL導入は待っていようかなぁ…とか思っていたのだが、私個人の会社から独立する日が近づいて来たこともあって、手始めにこのサイトにSSLを導入しておくことにした。

安価のSSL証明書と云えば、かつてはRapidSSLだったが、値上がりしてしまったので、今国内で最安値の証明書を提供しているSSL BOXから証明書を購入した。今月はちょうどキャンペーン中だったので、1年間で990円とかなり安い。3年契約にすると790円とさらに安かったので、3年ライセンスにした。

さて、SSL証明書は取得したので、今のサイトへインストールしないといけない。私のサイトはレンタルサーバのCORESERVERを利用しているので、そこに導入することになる。
この際、AWSに丸ごとサイト移管してしまおうかとも考えたのだが、サイト移管は大作業になるし、まだ料金がレンタルサーバより高くつく。AWSの場合、最初の1年は無料で使えるものの、利用できる「t2.micro」インスタンスではしっかりパフォーマンス・チューニングをしないと結構厳しい運用が強いられる(ここ最近ずっと業務でAWSでWordPressサイトを開発していたのだが、開発用の「t2.micro」インスタンスのパフォーマンスにはけっこう不満が溜まっていたので…)。
そんなわけで、まだ当面はCORESERVERにお世話になることにして、早速SSL証明書のインストールを行ってみた。

CORESERVERでは共有SSLを利用することもできるのだが、これだとURLが変わってしまうので根本的に私がやりたいことと違う。私が持っている独自ドメイン「ka2.org」をコモンネームとしてSSL証明書を発行したいのだ。
そのためには、固定IPを取得する必要がある。
そこで、CORESERVER(VALUE DOMAIN)で固定IPを6ヶ月分購入した(6ヶ月で2,500円だった…ちょいと高いが、まぁ仕方ない)。

まず、固定IPにドメインを紐付ける必要があるので、DNS設定を行う。

DNS設定の入口

入口がわかりづらい…(笑)

──で、上記のようにAレコードを修正する。
あとは、下記の手順に沿って管理画面から設定を行う。

SNIを使用したSSLの設定

※ ↑このマニュアルページもなかなか見つけづらい…全体的にCORESERVER(VALUE DOMAIN)のサイトってドキュメンテーション系のコンテンツの検索性能が低いのが難点だ。もうちょっとアクセシビリティを考慮して欲しいもんだ。

ただ、SSL設定で問題が発生した。
中間証明書(任意)欄にCoreSSLからダウンロードした中間証明書を入力して証明書インストールするとエラーになるのだ。その場合の注意書きに沿って中間証明書をサーバ証明書の直後にCHAINさせるとインストールが成功して、晴れてHTTPSプロトコルで「ka2.org」が見れるようになった。

だがしかし! WEBサイトとしては動くのだが、WordPress側でJetPackの連携が通らなくなった。

JetPackの連携エラー

連携しようとするとこんなエラーが出る。
何気に、JetPack使いには見慣れたエラー画面ではあるのだが、今回のエラーメッセージは今まで遭遇したことがなかった…。

Jetpack を利用するには、サイトが公開されていて、アクセス制限がかかっていない必要があります: site_inaccessible
エラー詳細: The Jetpack server was unable to communicate with your site https://ka2.org [IXR -32300: transport error: http_request_failed SSL certificate problem: unable to get local issuer certificate]

こういう時は、JetPackのサポートページからデバッグしてみるのが手っ取り早い。

JetPack デバッグページ

JetPack デバッグエラー

Unknown error」ってなんだよ!(笑)

突き放されたような無情なエラーが出て、ちょいと途方に暮れました。

JetPackの連携をHTTPSプロトコルで通すためにはいくつかコツがあるらしいのだが、色々試してみたものの一向に改善しないので、別軸で調べてみた。

ブラウザをChromeからFirefoxに変えてWEBサイトにアクセスしてみたところ、サイトが証明書エラーで表示されていないことが判明した。
おっと、これは証明書インストールがうまく行ってない? と思って、ブラウザで証明書を検証してみたら、
中間証明書がないか、もしくは不正
とのこと。

うーむ…中間証明書のインストールが正常にできていないようだ。
そこで、サーバにSSHして、

──のコマンドで証明書の検証をしてみると、

──となる。やはり中間証明書に不備があるようだ。

AWSとか自前のサーバとかであれば、証明書ファイルのサーバパスを確認して置きなおして…みたいなことができるんだが、いかんせん共有型のレンタルサーバだと、そんなサーバ権限がないので、もうサポートに頼むしかない…orz

──ということで、現在サポート対応中なわけです。

何気に共有サーバへのSSL導入って難儀だなぁ…。

続報はサポート対応が落ち着いてからまた書こうと思う。

Leave a Reply

Your email address will not be published.