0.9.6k または 0.9.7c 以降に更新すべし。
Apache と mod_ssl と OpenSSL と PHP をいただいてくる。
RingServer では Apache は /pub/net/apache/dist/httpd/, OpenSSL は /pub/net/openssl/source/, mod_ssl は /pub/net/www/mod_ssl/source/, PHP は /pub/net/www/php/distributions/ にある。 それぞれ同じディレクトリ(例: /usr/local/src)で展開。
以下では /usr/local/apache1328 といったところに Apache をインストールする。 これは複数のバージョンを置いておき,トラブルがあったら一つ前に戻せるようにするためである。 通常はここまで気にすることはない。
su -
cd openssl-0.9.7c
./config
make
make test
make install
cd ../mod_ssl-mod_ssl-2.8.15-1.3.28
./configure --with-apache=../apache_1.3.28
cd ../apache_1.3.28
OPTIM="-O2" SSL_BASE=../openssl-0.9.7c ./configure \
--prefix=/usr/local/apache1328 --enable-module=so \
--enable-module=ssl --enable-shared=ssl
make
# 証明書がない場合
make certificate TYPE=custom
# 証明書がある場合はそのパスを指定する
make certificate TYPE=existing CRT=/usr/local/ssl/certs/cert.pem KEY=/usr/local/ssl/private/key.pem
make install
cd ../php-4.3.2
./configure --with-apxs=/usr/local/apache1328/bin/apxs \
--with-pgsql --without-mysql
make
make install
cp php.ini-recommended /usr/local/lib/php.ini
ここで /usr/local/apache1328/conf/httpd.conf と /usr/local/lib/php.ini を編集。 詳しくは Apache のページ参照。
特に httpd.conf で
<IfDefine SSL> LoadModule ssl_module libexec/libssl.so LoadModule php4_module libexec/libphp4.so </IfDefine>
となってしまっている場合は
<IfDefine SSL> LoadModule ssl_module libexec/libssl.so </IfDefine> LoadModule php4_module libexec/libphp4.so
のように変える。 AddModule についても同様。
これで古いものを止めて新しいものを立ち上げる。
/usr/local/apache古い/bin/apachectl stop /usr/local/apache1328/bin/apachectl startssl
証明書を更新したら Secure Site シール のIssuer Digestも変えておかないといけない。
以下はほぼ古いままです。
入試業務にもSSLを使うとなると,いつまでもインチキ認証で通すわけにもいかないので, 正式な認証を取ってもらうことにしました。 とりあえず VeriSign Japan のテスト用認証を取得してみました。
設定は上記の Apacheサーバで安全なビジネス環境を構築するには のページに書いてある通りで大丈夫でした。 ただし,ここではコマンド名 ssleary を openssl で置き換えます。 以下に概要を記します。
でたらめなファイル rand.dat を用意しておきます。
$ openssl md5 * >rand.dat (たとえば) $ openssl genrsa -rand rand.dat -des3 1024 >key.pem XXX semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ...... Enter PEM pass phrase: hogehoge Verifying password - Enter PEM pass phrase: hogehoge
$ openssl req -new -key key.pem -out csr.pem Using configuration from /var/ssl/openssl.cnf Enter PEM pass phrase: 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) [AU]:JP State or Province Name (full name) [Some-State]:Mie Locality Name (eg, city) []:Matsusaka Organization Name (eg, company) [Internet Widgits Pty Ltd]:Matsusaka University Organizational Unit Name (eg, section) []:Webserver Team Common Name (eg, YOUR name) []:secure.matsusaka-u.ac.jp Email Address []:webmaster@matsusaka-u.ac.jp Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
csr.pem は次のようなものです。
-----BEGIN CERTIFICATE REQUEST----- ほげほげほげ…… -----END CERTIFICATE REQUEST-----
これを VeriSign に送ると,メールでセキュアサーバIDが送られてきます。 それをたとえば /usr/local/ssl/certs/cert.pem とします。 一方,最初にできた key.pem は /usr/local/ssl/private/key.pem とします。 /usr/local/ssl/private は 700, /usr/local/ssl/private/key.pem は 400 のパーミッションにしておきます。 要するに,key.pem は絶対に他に漏れないようにしておきます。
上のようにした場合,Apache のソースツリーの中で,次のように打ち込みます。
make certificate TYPE=existing CRT=/usr/local/ssl/certs/cert.pem KEY=/usr/local/ssl/private/key.pem
これで証明書が Apache のインストールディレクトリの conf 以下にコピーされ,conf/httpd.conf に SSLCertificateFile,SSLCertificateKeyFile が設定されます。
これで Apache を再起動します。
/usr/local/apache*/bin/apachectl stop /usr/local/apache*/bin/apachectl startssl
キー生成時に入れたパスワードを打ち込むと起動します。
なお,Internet Explorer で「このセキュリティ証明書の日付は無効です」と表示されるのは,マイクロソフト社が valid(「有効」)を「無効」と 誤訳 したからです。
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Last modified: 2003-10-02 08:16:56