[xampp]chromeの証明書エラーを回避する方法

2015-10-21


xamppが役に立つのは、もう、誰もが知る所(いいすぎ ^^;)

ですが、最近使ってて気になることが2点。一つはxamppの更新。もう一つがSSL使ってアクセスすると証明書エラーが生じること。今回は前者についての記事となります(というか、後者はまだ解決できず・・・)


xamppで立てたサーバにchrome + SSLでアクセスすると「この接続ではプライバシーが保護されません」と表示され、毎回いちいち「大丈夫だよ!」とchromeに教えてあげないといけません(危険なことを承知でアクセスしますか?的なクリックを2回)。これが非常に面倒です。

対処方法は、

  1. apacheの証明書設定
  2. OSへの証明書インストール

です。

なお確認環境は「Win7」「xampp1.8.1」「chrome 46」です。また、バーチャルホストで複数ドメイン運用している場合となります。

1. apacheの証明書設定

まずひとつ目、apacheの証明書設定です。大まかにいうと証明書を生成して読み込むよう設定します。

1.1. 証明書を生成

xampp apache同梱のmakecert.batを使います。ただ、このまま使うとSHA-1という古い署名方式になってしまい、これはこれでchromeさんのお気に召さないみたいです。そこでmakecert.batを修正します。csrを生成するコマンドに-sha256というオプションをつけます。ついでに証明書の有効期間をずばっと10年に広げてみます。

変更前
bin\openssl req -new -out server.csr
・・・
bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
変更後
bin\openssl req -new -out server.csr -sha256
・・・
bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

このあとmakecert.batを実行しますが、いくつか質問されます。最初のPEM Passphraseとその確認、飛んでCommon Nameにバーチャルホストのドメイン名を入力、最後にPEM Passphraseを再入力すればOKです。詳しくはmakecert.batで検索してもらえれば。

これによりapache/conf以下に

  • ssl.crt/server.crt
  • ssl.key/server.key

が生成されます。これらのファイルセットをバーチャルドメインごとに生成しますので、生成後、適当な名前(バーチャルドメインがわかるようなものがベター?)に変えます。この作業をバーチャルドメイン分繰り返します。

1.2. 証明書の設定

httpd-ssl.conf(今回だとapache/conf/ext/以下)で、先ほど生成したcrt, keyを指定します。デフォルトでSSLCertificateFileはserver.crt, SSLCertificateKeyFileはserver.keyを指定しているので、そこを書き換える形が簡単です。

変更前

SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
変更前

SSLCertificateFile "conf/ssl.crt/[変更した名前].crt"
SSLCertificateKeyFile "conf/ssl.key/[変更した名前].key"

apacheの証明書設定は以上です。

2. OSへの証明書インストール

これでapacheから証明書を提示されるようになりましたが、この証明書、生成したばかりで、OSにとっては見知らぬ証明書、「危険じゃないかな?」と勘ぐられてしまいます。そこで、安全な証明書であることをOSに教えてあげる(インストール)必要があります。生成したcrtファイルをダブルクリックするとインストールウィザードが表示されるのでその指示に従えばOKです。このとき、「証明書ストア」という設定にて「証明書をすべて注ぎのストアに配置する」→「信頼されたルート証明機関」を設定してください。


以上で設定は終了です。apacheを立ち上げ、chromeでアクセスするとURL横のバツ印はついたままなものの、当初でていたエラー画面ではなく、通常の画面が表示されるようになります。クリック数が減って、開発効率が向上すること間違いなし!?