Linux の使い方: Apache で SSL 暗号化通信の利用準備を整える (CentOS 5.4)


SSL 暗号化通信

CentOS 5.4 では Web サーバーとして "Apache" が用意されています。

この Apache に SSL サイトを登録しようとしたところ、モジュールが見つからないとのことでエラーとなってしまいました。どうやら SSL 暗号化通信を行う際に使用するモジュール mod_ssl が既定ではインストールされていなかった感じです。

そこで、今回は Apache に mod_ssl を組み込んで、ひとまず動作テストを行うための SSL 設定ファイルを用意してみることにしました。

 

まず、次のようにして mod_ssl をインストールします。

yum install mod_ssl

mod_ssl のインストールが完了したら、SSL 設定ファイルを用意します。

設定ファイルを次のような感じの内容で、"/etc/httpd/conf.d/ssl.conf" ファイルに用意しておきます。なお、下記内容は当方の環境で見つかった既定の設定内容のコメント部分を除いたものです。

LoadModule ssl_module modules/mod_ssl.so

 

Listen 443

 

AddType application/x-x509-ca-cert .crt

AddType application/x-x509-ca-cert .cer

AddType application/x-pkcs7-crl .crl

 

SSLPassPhraseDialog builtin

 

SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)

SSLSessionCacheTimeout 300

 

SSLMutex default

 

SSLRandomSeed startup file:/dev/urandom 256

SSLRandomSeed connect builtin

 

SSLCryptoDevice builtin

 

<VirtualHost _default_:443>

 

DocumentRoot "/var/www/html"

ServerName www.example.com:443

 

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

 

SSLEngine on

SSLProtocol all -SSLv2

 

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

 

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

 

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

SSLOptions +StdEnvVars

</Files>

 

<Directory "/var/www/cgi-bin">

SSLOptions +StdEnvVars

</Directory>

 

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 

</VirtualHost>

ここまで出来たら Apache の設定が正しいかどうか、次の命令を使って確認してみます。

service httpd configtest

 

このような形で設定を行えば、SSL による暗号化通信が可能になると思います。

SSL で利用する電子証明書の作成などについては、またいつか別の機会で触れようと思います。