[ TOP ]2004/11/21SSL
SSL- SSLは簡単に言うと、webサーバーとクライアント間のデータを暗号化し、安全な通信を行うためのモジュールです。
WEB Mailerなどの個人情報が流れる可能性のあるようなツールなどを使う場合は、入れておいた方が良いです。
とりあえず、必要なドメインごとにSSLを設定します。
一応、確認
# rpm -qa | grep mod_ssl
mod_ssl-2.0.40-21.16.legacy
入っているようなのでこのまま設定に進みます。
サーバー用秘密鍵を作成
まずは鍵を作成
# cd /etc/httpd/conf/
# make server.key
パスワードを2回入力します
Enter pass phrase: <Password>
Verifying - Enter pass phrase:<Password>
サーバー用秘密鍵からパスワードを削除します
# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:<Password>
writing RSA key
公開鍵を作成
# make server.csr
umask 77 ; \
/usr/bin/openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Dokkanoken
Locality Name (eg, city) [Newbury]:Anomachi
Organization Name (eg, company) [My Company Ltd]:umekawa.info
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:umekawa.info
Email Address []:hoge@umekawa.info
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
証明書を作成
# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 365
Signature ok
subject=/C=JP/ST=Aichi/L=Toukai/O=umekawa.info/CN=umekawa.info/emailAddress=hoge@umekawa.info
Getting Private key
作成した鍵と証明書を別に保存とりあえず、ドメインごとにそのまんまの名前のディレクトリに保存します。
# chmod 600 server.*
# mkdir umekawa.info
# mv server.* umekawa.info/
鍵と証明書を発行したいドメインごとに2番からここまでを繰り返します。
ssl.confの編集SSLの設定ファイルを編集し、バーチャルドメインに対応させるようにします。
# vi /etc/httpd/conf.d/ssl.conf
ユーザーディレクトリの追加(バーチャルホスト設定の直前あたりに追加)
UserDir /home/*/public_shtml
<Directory /home/*/public_shtml>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch ExecCGI IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
バーチャルホストの追加
NameVirtualHost 192.168.0.250:443
あとは、バーチャルドメインごとに下記を追加
<VirtualHost 192.168.0.250:443>
DocumentRoot "/home/hoge/public_shtml"
ServerName umekawa.info
ServerAdmin hoge@umekawa.info
SuexecUserGroup hoge user_group
ErrorLog logs/ssl_umekawa.info_error_log
TransferLog logs/ssl_umekawa.info_access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/umekawa.info/server.pem
SSLCertificateKeyFile /etc/httpd/conf/umekawa.info/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_umekawa.info_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
ホームページ公開用ディレクトリを準備
(例)hogeというユーザーを作成します
# su - hoge
$ mkdir public_shtml
あとは、適当なindex.htmlを作成したディレクトリに置き、https://umekawa.info/にアクセスしてみます。
セキュリティの警告画面が出てくればOKです。
証明書の中身も確認してみましょう。
こんなのが出ます。
信頼されていません。云々と書いてありますが、気にしなくてOKです。
気にする方は、ルート証明書を発行してくれる機関がありますので、そこで購入してください。
結構な値段するし、自宅サーバーでそこまで必要はないと思いますが。(^^;;以上で、mod_sslの設定は終わりです。