2010/12/04

SSLを有効にして、コンテンツの警告を修正してみた

ServersMan@VPS上のApacheにRapidSSLからCertificationを購入して、SSLを有効にしてみました。

SSL証明書の購入自体は簡単で、海外のリセラーからPaypalで決済した後に、RapidSSLのSSL購入サイトに飛ばされてすぐに処理が終りました。

海外のリセラーを使ったのは、国内の代理店だと普通すぎるのと、海外でディスカウントセールをやっていたのが、その理由。

昔と違って特別なApacheや特別なプラグインは必要ないので、普通に/usr/lib/ssl/misc/CA.pl -newreqを使って作成したnewreq.pemを貼り付けて、証明書が返送されてきて、/etc/apache2/sites-available/default-sslの設定をコピーして完了。

ポイントは証明書の返送されるメールアドレスがWhoisに登録されているアドレスか、ドメイン名か、ホストのFQDNの3つからしか選べないところ。

Whoisにはお名前.comの代理サービスを使っているので、最初の選択肢は外れて、ServersMan@VPSでメールを受け取れないと困った事になります。 ちゃんとDNSのMX設定をしてキャッシュが更新された頃を見計らって手続きをしないとメールが行方不明になってしまいそうです。

だいたい待ち時間を入れて1時間ぐらいの作業だったけれど、自分の知識ベースだと、結局参考にしなかったCSRを生成する国内代理店のガイドは判りづらいと感じました。 海外リセラーは作り方のガイドを分かりやすい場所には載せていなかったけれど、CSRのチェックページがあって確認をすることができました。国内の事業者も掲載していますね。

ファイルはkey, csr, certの3種類だけのはずなんだけど、なんでこんなに複雑に感じるんだろう。

手順はシンプルに越したことはないけれど、チェックするべきポイントをちゃんと書かないといけないなぁ、と認識を新たにした作業でした。

SSLを有効にするとブラウザがちょっとした警告を出す

ページの中にSSLを経由しない画像ファイルなどが埋め込まれていると警告を出してきます。

まぁW3CのCSS Validator等の画像はローカルにコピーしても良い事が明記されているので、そういう対応でいいとして、問題だったのはGoogleのカスタム検索のロゴ用画像ファイルでした。

カスタム検索のダイアログを埋め込むと、www.google.co.jp/cse/brandにform=cse-search-boxを指定して、JavaScriptファイルを読み込みます。

このサイトへのアクセスをSSLにしても、この中に書かれている画像ファイルが'http://'固定なので警告になります。

Google Analytics用に埋め込むコードはSSLに対応して変更されたので、それをそのまま使ってdocument.location.protocolに応じてURLを変更するようにしました。

変更前 var b = function(){..}

    var b = function() {
      if (q.value == '') {
        q.style.background = '#FFFFFF url(http:\x2F\x2Fwww.google.com\x2Fcse\x2Fintl\x2Fen\x2Fimages\x2Fgoogle_custom_search_watermark.gif) left no-repeat';
      }
    };

変更後 var b = function(){..}

    var b = function() {
      if (q.value == '') {
        var ga = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com\x2Fcse\x2Fintl\x2Fja\x2Fimages\x2Fgoogle_custom_search_watermark.gif';
        q.style.background = '#FFFFFF url(' + ga + ') left no-repeat';
      }
    };

ちゃんとした対応としては、 似たような質問への回答をみると、該当JavaScriptファイルへのアクセスをコメントアウトするしかなさそうです。

今回のケースだと本来GoogleがメンテナンスするJavaScriptファイルはローカルに配置せざるを得ないので、自分の責任で管理する必要があります。

またいろいろなコンテンツの更新をチェックする仕組みを自分で作るかなぁ…。

0 件のコメント: