ubuntu8.04のApache2にSSLを入れる
方針
証明書と鍵ファイルを生成
Apacheの設定ファイルを書き換える
まず証明書と鍵ファイルを作成
# ルートになっておく sudo -s cd /etc/apache2/ mkdir ssl cd ssl # サーバー用秘密鍵(server.key)の作成 openssl genrsa -des3 -out server.key -rand rand.dat 1024 #### =>server.keyができる # サーバー用公開鍵(server.csr)の作成 openssl req -new -key server.key -out server.csr # いろいろ聞かれる Enter pass phrase for server.key: -> hoge (※1) Country Name (2 letter code) [AU]: -> JP State or Province Name (full name) [Some-State]: -> Tokyo Locality Name (eg, city) []: -> Tosimaku Organization Name (eg, company) [Internet Widgits Pty Ltd]: -> golgokoji Organizational Unit Name (eg, section) []: -> section Common Name (eg, YOUR name) []: -> localhost (※2) Email Address []: -> golgokoji@localhost.localhost A challenge password []: -> [Enter] An optional company name []: -> [Enter] #### =>server.csrができる # 起動時パスワード入力の要求を削除 openssl rsa -in server.key -out server.key Enter pass phrase for server.key: -> hoge (※1のパスワード) # サーバー用証明書(server.crt)の作成 openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 #### =>server.crtができる
(※2)動作させたいドメインを正確に記述
色々できたけど、多分使うのはserver.crtとserver.keyだけ
次にApacheの設定をする
参考
http://www.rinzo2.jp/~rinzo/apache_ssl/apache_and_ssl_00.htm
apacheの設定
sslのモジュールを有効にする
sudo a2enmod ssl
ssl設定ファイル記述
viかなにかで/etc/apache2/sites-available/httpd-ssl.confを新規作成し、以下を記述
Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog builtin SSLSessionCache "dbm:/var/run/apache2/ssl_scache" SSLSessionCacheTimeout 300 <VirtualHost localhost:443> DocumentRoot "/home/golgokoji/public_html/" SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL # when adding another domain .Create another crt file(and csr file) SSLCertificateFile "/etc/apache2/ssl/server.crt" SSLCertificateKeyFile "/etc/apache2/ssl/server.key" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache2/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
作成したファイルを読み込ませてApache再起動
a2ensite httpd-ssl.conf apache2ctl restart
これでおちまい。
sub.localhost等で複数のドメインをssl対応させたい場合は、同一の手順で
subserver.key
subserver.crt
subserver.csr
を作成し、httpd-ssl.confの中にVirtualHostを追加すればいいと思う。