XAMPPでHTTPS通信!ApacheのSSL設定2016年2月25日Web制作プログラミングApacheHTTPSSSLTweetこんにちは!システムエンジニアのリョータです。前回の投稿から1年も経ってしまいましたが、発行した証明書をApacheに設定する方法を書きたいと思います。今回は、発行されたサーバ証明書をApacheに設定して、設定後の確認までを行います。証明書には有効期限が書いてある為、期限が切れた際は、更新だとしても同じ作業で交換する必要があります。有効期限は発行時に決定しますが、1年~3年、長くても5年までのようです。準備するもの準備するものは以下の通りです。秘密鍵ファイルサーバ証明書(中間CA証明書)XAMPPはデフォルトでインストールした環境(C:\xampp\配下にインストール)の前提です。秘密鍵ファイルの作成やサーバ証明書の発行は、前回の記事を参照してください。XAMPPでHTTPS通信!SSLのためのCSRの作り方テスト用であれば無料の証明書を発行できる認証局がありますので、探してみてください。証明書の発行に中間CAが存在する場合、中間CA証明書もApacheへの設定が必要です。昨今は、中間CAが無いことのほうが珍しいので、中間CA証明書も送られてくる(または、認証局のサイトからダウンロードしてくるように指示される)と思います。※最近は、中間CA証明書を設定しなくても自動的にダウンロードする仕組みやクライアント側に中間CA証明書を持っていて、問題なく認証できる場合もありますが、古い機器ではそういったシステムがないこともあるので、設定しておいたほうが良いと思います。サーバ証明書の確認サーバ証明書は、メールでファイルが添付されてくるか、メール本文にこのようなヘッダとフッタに囲まれた文字が送られてきます。CERTIFICATE-----このヘッダとフッタを含めて証明書です。中間CA証明書も同じ形式なので、間違えないようにしましょう。※ルートCA証明書も送られてくることがありますが、設定不要です。自分のサーバ証明書が、何段階の認証になっているか確認しておきましょう。3段階の証明書だとこんな感じです。4段階だとこんな感じメールにどの認証局(段階)の証明書か、記載されていると思います。英語で書かれている場合は、これを参考にしてください。(単に)CertificatenなどSSL証明書ファイルの作成XAMPPではApacheに設定する為に、SSL証明書ファイルを作成する必要があります。SSL証明書ファイルは、ルートCA証明書以外を1つにまとめたファイルです。証明書はテキストですので、すべてコピーしてくればOKです。ヘッダとフッタも必要ですので、消さないようにしてください。証明書はサーバ証明書を1番上に記述し、順に階層をさかのぼります。中間CA証明書2中間CA証明書1という順です。作るファイルはこんなふうになります。CERTIFICATE-----ファイル名については、XAMPPのデフォルトの設定では[server.crt]になっています。下記のSSLの設定で変えられますので好きな名前でOKです。2.4.8より前のバージョンの場合は、SSL証明書ファイルの他にSSL証明書チェーンファイルが必要です。SSL証明書ファイルはサーバ証明書のみで作成し、SSL証明書チェーンファイルは中間CA証明書で作成します。中間CA証明書の順番はSSL証明書ファイルと同じで、中間CAがいない(ルートから直接発行された)場合はファイルは不要です。C:\xampp\apache\conf\extra\にあります(デフォルトでインストールした場合)。IPAのSSL/TLS暗号設定ガイドラインの例を元に作成しています。新たな脆弱性が見つかり、古い設定になっているかもしれないので、必ず最新の情報を確認してください。サンプルを使用して、問題があった場合でも責任は負いかねます。ログなどの設定を省略していますので、適宜設定してください。SSL証明書チェーンファイルのパスを設定してください。SSL証明書ファイルへのパスを設定してください。秘密鍵ファイルも同様です。Apacheを再起動するとSSLの設定が完了です。HTTPSのチェック設定したら、証明書の設定がうまくできているか確認してみましょう。設定の確認は自分の責任配下のサーバのみに行いましょう。1.コマンドでチェックまず、ローカルで確認する場合は、opensslコマンドを使用します。-showcertscdコマンドは、XAMPPはデフォルトのパス(C:\xampp\配下)にインストール場合のパスです。表示された情報の中で「s:」となっているのが証明書の情報、「i:」となっているのがその証明書の発行者の情報です。2.外部サービスでチェックコマンドで問題なく証明書情報が表示されたら、外部サービスを使って確認してみましょう。シマンテックやジオトラストなどがSSLのチェッカーを公開しています。https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsphttps://cryptoreport.geotrust.com/checker/views/certCheck.jsp公開しているドメインを入力してチェックしてみましょう。correctlyと表示されれば、問題ありません。3.SSLの詳細なチェックSSLの設定で、どの脆弱性があるか、どのブラウザから接続できるかテストできるサイトがあります。boards]にチェックを入れないとテスト結果が公表されますので、注意してください。終わりにSSLを利用する設定は以上です。SSLのテストはしてみましたか?レーティングはAが取れたでしょうか?SSLのセキュリティはApacheの設定以外にも、opensslやmod_sslのバージョンにもよりますので、アップデートが必要かもしれません。今回は、基本的な設定なので、忘れないようにしておきたいですね。今回、参考にさせていただいたサイトは以下の通りです。次の記事へ株式会社ライズウィル人に、企業に、社会に貢献するサービスを提供するITソリューション企業の株式会社ライズウィルです。ライズウィルブログでは、システム開発、Web制作、デザインなどのITに関するためになる情報や、社内のイベント、お知らせなどを掲載していきます。求める人材Web系、もしくはオープン系の開発実務1年以上の経験をお持ちの方。