WWW サーバ
O R A N G E

Apache-SSL
Apache-ssl は WWW サーバとクライアントの間の通信を暗号化する機能を与えるソフトウェアである.これにより https 通信が実現可能となる.Apache-ssl を利用するには OpenSSL というソフトウェアが必要となる.

■ メモ
  • 認証局は簡易認証局.
  • SSL はパスワードなしで起動させる.
■ OpenSSL のインストール
# aptitude update
# aptitude install openssl
# cd /etc/ssl
■ Openssl.cnf の編集
# vi /etc/ssl/openssl.cnf
編集内容は以下の通り
* [ CA_default ]
default_days = 400 # how long to certify for
* [usr_cert]
nsCertType=server のコメントアウトを外す
* [v3_ca]
nsCertType=sslCA, emailCA のコメントアウトを外す
* [ req_distinguished_name ]
countryName_default = JA
stateOrProvinceName_default = Hokkaido
organizationName_default = Department of Science
organizationalUnitName_default = Earth and Planetaly science
■ 証明書の発行
# cd /usr/lib/ssl/misc
# ./CA.sh -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 1024 bit RSA private key
.......++++++
..............++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
....
Country Name (2 letter code) [JA]:
State or Province Name (full name) [Hokkaido]:
Locality Name (eg, city) []:Sapporo
Organization Name (eg, company) [Department of Science]:
Organizational Unit Name (eg, section) [Earth and Planetaly science]:
Common Name (eg, YOUR name) []:www.ep.sci.hokudai.ac.jp
Email Address []:epwww.ep.sci.hokudai.ac.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/./cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 0 (0x0)
Validity
Not Before: Oct 19 16:28:59 2008 GMT
Not After : Oct 19 16:28:59 2011 GMT
Subject:
countryName = JA
stateOrProvinceName = Hokkaido
organizationName = Department of Science
organizationalUnitName = Earth and Planetaly science
commonName = www.ep.sci.hokudai.ac.jp
emailAddress = epwww@ep.sci.hokudai.ac.jp
....
Certificate is to be certified until Oct 19 16:28:59 2011 GMT (1095 days)

# /usr/sbin/make-ssl-cert

最初にホスト名が聞かれるが,ここでは sango にしておく.

/etc/apache2/sites-available/default-ssl を以下のように変更.

SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

■ パスフレーズの消去
# openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
■ 証明書の作成
# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt
■ ブラウザに import する der の作成
#openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der
■ Apache2 の設定
# mkdir /etc/apache2/ssl
# cp ./demoCA/cacert.crt /etc/apache2/ssl
# mkdir /etc/apache2/ssl/private
# cp ./demoCA/private/cakey.pem /etc/apache2/ssl/private/
# cd /etc/apache2/site-available/
# cp/usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz .
# gzip -d httpd-ssl.conf.gz
# mv httpd-ssl.conf ssl

# vi ssl

* /etc/apache2/ssl/cacert.crt を登録

SSLCertificateFile /etc/apache2/ssl/cacert.crt

* /etc/apache2/ssl/private/cakey.pem を登録

SSLCertificateKeyFile /etc/apache2/ssl/private/cakey.pem

* VirtualHost や ServerName 等を設定

DocumentRoot "/var/www/"
ServerName sango.ep.sci.hokudai.ac.jp
ServerAdmin epwww@ep.sci.hokudai.ac.jp
■ /etc/apache2/sites-available/ssl の修正
# /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apa che.pem

ホスト名を聞かれるので sango.ep.sci.hokudai.ac.jp とする.

#SSLCertificateFile "/etc/apache2/ssl/cacert.crt" SSLCertificateFile "/etc/apache2/ssl/apache.pem"

#SSLCertificateKeyFile "/etc/apache2/ssl/private/cakey.pem SSLCertificateKeyFile "/etc/apache2/ssl/apache.pem"
■ /etc/apache2/site-available/default を若干手直し
NameVirtualHost *:80
<VirtualHost *80>
■ /etc/apache2/sites-available/default-ssl を若干手直し
SSLCertificateFile /etc/apache2/ssl/apache.pem SSLCertificateKeyFile /etc/apache2/ssl/apache.pem #SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
■ 設定をチェックして,モジュールとサイトを有効化し再起動
# apache2ctl -t
Syntax Ok
# a2ensite ssl
# a2enmod ssl
# /etc/init.d/apache2 restart
■ https が有効となったかどうか確認
「このサイトは自己署名です」と言われたら Ok.
■ 動作しない場合

/etc/apache2/sites-enabled/ 以下のシンボリックリンクが /etc/apache2/sites-available/ssl になっているために動作しない可能性がある. これを /etc/apache2/sites-available/default-ssl に変更

参考サイト
Copyright © 2008 EPnetFaN
最終更新日:2011/08/19 (岡田 英誉)