debian apache + ssl
・インストール
# apt-get install apache2 # apt-get install openssl
たぶんsslモジュールも一緒にはいる。
・sslモジュールの有効化
# a2enmod ssl
・秘密鍵の作成
# openssl genrsa -aes128 1024 > server.key
・公開鍵の作成
# openssl req -new -key server.key > server.csr
・証明書の作成
# openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt
・鍵、証明書の設置
httpから参照されない場所ならどこでもいいが、適当に /etc/apache2/ssl/ 配下に設置することにする。
・VirtualHost の設定
apache2 の site-availables に default-ssl が入っているので、それを参考に編集する。
無い場合は下記みたいな感じにする
# vi default-ssl LoadModule ssl_module modules/mod_ssl.so Listen 443 AddType application/x-x509-ca-cert .crt 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> 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 <span class="deco" style="color:#FF0000;">SSLCertificateFile /etc/apache2/ssl/server.crt</span> <span class="deco" style="color:#FF0000;">SSLCertificateKeyFile /etc/apache2/ssl/server.key</span> <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 起動時のパスフレーズ入力を省略
起動時にいちいち聞かれるのがめんどうなので、パスフレーズを解除する。
# openssl rsa -in server.key > server.key_nopass