VPSでDrupalのSSL

興味のない方にしたら、全然意味のないタイトルですね(^ ^;

仮想の専用サーバーに、コンテンツマネジメントシステムのDrupalで暗号化通信SSLを導入、ということで、これで個人情報とかも扱えるウェブ上の情報管理システムを低コストで構築できるようになるのですが、以下はご興味のある向きONLY、&自分のメモです。

SSLの証明書はかなり格安でも評判の良いRapid SSLを使ってみました。複数の代理店があるようですが、ここで年間2600円で申込みました。

証明書のインストール方法はどうのこうのさんの記事を参考に行いました。

  1. Apacheのモジュールmod_sslをインストール
  2. 秘密鍵を作成しこれをもとにSSL証明書を発行するための署名要求CSRを作成します。
    このCSR作成の際、確実に受信でき申請するドメインでのメールアドレスでの申請、その他の申請内容もWhoisの情報が一致するように注意が必要です。
  3. 作成したCSRをRapid SSLの申込みフォームに貼付けて申込みます。記入内容に問題がなく、支払も確認されると、即、Rapid SSLを運用するジオトラスト社からSSL証明書がメールで送られてきます。
  4. この証明書をserver.crtとしてサーバーに設置します。
  5. server.keyパスフレーズ応答を外します。
  6. ssl.confを編集して、server.crtとserver.keyへのパスを指定します。
  7. バーチャルホストの設定を変更し、Apacheを再起動します。
  8. 上記の参考記事にはないのですが、iptableでSSL用の443番ポートを有効化する必要があります。
    # vi /etc/sysconfig/iptablesで下記を追加
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
  9. ここでサイトを開いてみて、問題ないさそうだな、とやっているとChromeやIEではOKだったのに、Firefoxだけ、接続の安全性を確認できません、というデッカイエラーメッセージがでてきます。どうのこうのさんの記事にあるように、やはり中間証明書のインストールが必要なようです。これはRapid SSLの仕様のようです。
    rapidssl-chain.crtというファイルを作って、メールで送られてきた中間証明書をペースト、ssl.confにこの中間証明書へのパスを指定して、apacheの再起動です。
  10. さあ、これで問題がないはずですが、Drupalをインストールしてみると、クリーンURLを外さないとSSLページへ進めません。さんざん調べまくって解決できました。もう一度ssl.confを開いて443のディレクティブに下記を追加します。
    <Directory "/var/www/html/xxxxx.com">
    AllowOverride All
    </Directory>

これでOK!、どのブラウザでも鍵のアイコンを開くとRapid SSLで暗号化されています、って出てきました(^o^)/

コメント

追記のハマリポイント:
Virtual Hostを設定している場合、ssl.confのDocument Rootは
DocumentRoot "/var/www/html/xxxx.com"(xxxx.comは有効化するドメイン)になります。