hypermkt blog

Apache2.2+mod_sslのSSL設定メモ

February 14, 2016

概要

  • Apache2.2で構築されたウェブサーバーにSSL証明書を設定します

購入元

SSL証明書は自分が知るかぎり格安の RapidSSLから購入しました。当日中に発行できるのでとても便利です。

設定方法

mod_sslのインストール

ApacheでSSLを利用するには mod_sslモジュールを使います。下記コマンドを実行しmod_sslをインストールします。

$ yum install mod_ssl

証明書の配置

購入元からメールで送られてきた証明書ファイルをサーバー内に配置します。下記は一例ですが、パッケージインストールされたhttpdの場合は /etc/httpd以下にプログラム・設定ファイルが配置されるので今回は /etc/httpd/sslディレクトリ内に証明書ファイル3つを配備しました。

$ ll /etc/httpd/ssl
合計 12
-rw-r--r-- 1 root root 1497  213 15:27 www.your-site.jp-cert-chain.pem  # 中間証明書
-rw-r--r-- 1 root root 1513  211 18:19 www.your-site.jp-cert.pem        # サーバー証明書
-rw-r--r-- 1 root root 1679  211 18:19 www.your-site.jp-key.pem         # 秘密鍵

Apache設定

mod_sslをインストールすると /etc/httpd/conf.d/ssl.confに設定ファイルが配置されるので、ssl.confを下記のように設定すると有効になります。(自分用のメモのため各設定項目の説明やその他設定項目は省いています。)

Listen 443
NameVirtualHost *:443

<VirtualHost *:443>
   SSLEngine on
   # SSLv2, SSLv3以外の全てを有効にする
   SSLProtocol all -SSLv2 -SSLv3
   # SSLハンドシェイク時に利用する暗号化方式はサーバー側を優先する
   SSLHonorCipherOrder On
   # 暗号化スイート設定
   SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!EXP:!LOW:!aNULL:!eNULL:!ADH:!DSS:!MD5:!PSK:!SRP:!RC4:!3DES
   SSLCertificateChainFile /etc/httpd/ssl/www.anikore.jp-cert-chain.pem
   SSLCertificateFile /etc/httpd/ssl/www.your-site.jp.jp-cert.pem
   SSLCertificateKeyFile /etc/httpd/ssl/www.your-site.jp.jp-key.pem

Apache設定の反映

証明書ファイルを配備、Apache設定をしただけではSSLは有効になりません。下記のようにApacheを再起動して初めて有効になります。

$ sudo service httpd configtest
$ sudo service httpd graceful

感想

SSLを有効にすること自体は参考サイト通りにすれば簡単に設定はできる事は分った。但し近年のSSL脆弱性問題に対応するには正しい知識と理解から利用する暗号化スイートは選択しなければならない点は気をつける必要がある。


都内で働くWebアプリケーションエンジニア。主にサーバーサイド。最近はRuby/Railsでコードを書くのが楽しい。