HTTPS によるサービスを行う場合には証明書(certificate)を作成する必要がある。これについては 別ページで解説済なので省略する。
cert.pem
と key.pem
が準備されたとして、そこから話を進めよう。
/sys/lib/ssl
にコピーする。アクセスモードは、--r--r--r-- M 8 bootes sys 1249 Jul 29 18:42 cert.pem --r-------- M 8 bootes sys 887 Jul 29 18:42 key.pemである。(セキュリティの事を考えると、本当は
key.pem
は認証サーバの secstore に置くべであろう。/sys/lib
は CGI のアクセス空間の中に入っている事に注意すべきである。CPU サーバに置くとしても、CGI のアクセス空間の外が良いと思われる。他方では鍵管理のためには cert.pem
と key.pem
は同じ場所に置く方がよいとも思える。これらはどこにでも置く事ができるのだ。)
筆者は key.pem を
$home/private/sslに置いている。
$home
は bootes
のホームディレクトリである。
key.pem
を登録key.pem
を登録する。この内容は次のようなものである。(途中が省略されている)-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQC3e6fc5JGqId3EB6bG5bW0n/nxm+Hl/cqZ10auwGkoUIPSGt70 36biOH74tkKnqVmfK+IsahG+s1qRcSJzA6qW+l7yYghOu5EFRPA5tf1gj2yAUmsP ..... ..... p1bb+XDjBL3CcrWbzo7tAje7Zcl+r9q+RSOUKhJ4MP0= -----END RSA PRIVATE KEY-----この形式は factotum が扱う形式ではない。
auth/secretpem
が形式変換をしてくれる。cpu% auth/secretpem /sys/lib/ssl/key.pem > /mnt/factotum/ctl筆者は
auth/secretpem key.pem > $home/private/ssl/key.pem.factotumで
key.pem.factotum
を作っておいて、/bin/cpurc
の中で利用している。
auth/factotum cp $home/private/ssl/key.pem.factotum /mnt/factotum/ctl /usr/local/bin/386/httpd -us -p443 -c/sys/lib/ssl/cert.pemを実行すればよい。
cp $home/private/web.factotum /mnt/factotum/ctl auth/login webここに
web.factotum
は xxxxx をユーザ web のパスワードとすると、key dom=aichi-u.ac.jp proto=p9sk1 user=web !password=xxxxxを内容とするファイルである。
/bin/cpurc
の中でcp $home/private/web.factotum /mnt/factotum/ctl p=web-passwd r=$home/private/ssl/key.pem.factotum mon -du web -p $p -r $r /usr/local/bin/386/httpd -suM -p443 -c/sys/lib/ssl/cert.pemを実行させればよい。
web-passwd
はユーザ web になるに必要なパスワードが含まれているファイルで、echo -n xxxxx >web-passwdによって作成される。
cp $home/private/web.factotum /mnt/factotum/ctl b=/usr/local/bin/$cputype c=/sys/lib/ssl/cert.pem p=$home/private/web-passwd r=$home/private/ssl/key.pem.factotum $b/mon -du web -p $p $b/httpd -suM $b/mon -du web -p $p -r $r $b/httpd -suM -p443 -c $c