2004/12/12 工事中
Web サーバを使用してビジネスを行おうとすれば証明書を買わざるを得ないであろう。セールスマンは身だしなみを整える必要があるからである。(身だしなみはセールスマンだけではなく、詐欺師の必需品でもある。) 真の信用とは何の関係もないと分かっていても。
term% cd /sys/lib/tls term% auth/rsagen -t 'service=tls owner=*' >key term% auth/rsa2x509 'C=US CN=*.cs.bell-labs.com' key | auth/pemencode CERTIFICATE >cert筆者の環境では例えば次のようになるであろう。(どっちみち正式の「証明書」ではないので、適当に書けばよい。)
term% auth/rsa2x509 'C=JP ST=Aichi L=Nagoya O=Aichi-University OU=ArLab CN=Arisawa' key | auth/pemencode CERTIFICATE >certこれはもちろんブラウザからは警告が発せられる。ブラウザによっては内容を見る事ができる。
key を秘密にし、cert を公開する。auth/rsagen で生成された key は既に factotum 形式になっている。
term% chmod 400 key term% chmod 444 cert
term% b=/usr/local/bin/386 term% r=/sys/lib/tls/key term% c=/sys/lib/tls/cert term% $b/mon -du web -r $r $b/httpd -suM -p443 -c $cとする。今回の mon ではユーザ web のパスワードは要らない。
-c
オプションでは「証明書」のフルパスを与える。
/sys/lib/ssh
に作成される。term% aux/ssh_genkey term% ls -l /sys/lib/ssh --rw-rw-r-- M 8 arisawa sys 318 Dec 13 22:57 /sys/lib/ssh/hostkey.public --rw------- M 8 arisawa sys 1167 Dec 13 22:57 /sys/lib/ssh/hostkey.secret --rw------- M 8 arisawa sys 1216 Dec 13 22:57 /sys/lib/ssh/hostkey.secret.factotum term% cd /sys/lib/ssh term% aux/X509gen -p hostkey.secret 'C=US ST=NJ L=07922 O=Lucent OU=''Bell Labs'' CN=G.R.Emlin' > cert.pem term% ls -l --rw-rw-r-- M 8 arisawa staff 822 Dec 13 23:12 cert.pem --rw-rw-r-- M 8 arisawa sys 318 Dec 13 22:57 hostkey.public --rw------- M 8 arisawa sys 1167 Dec 13 22:57 hostkey.secret --rw------- M 8 arisawa sys 1216 Dec 13 22:57 hostkey.secret.factotumこうして作成された
hostkey.secret.factotum
は現在の factotum の仕様と合致していない。多分 X509gen が古いのであろう。つまり次のようなものが生成される。key proto=sshrsa size=1024 ek=29 !dk=16F3288A28B20C38809FEF03D68B8749...マニュアル factotum(4) によれば
proto=sshrsa
はサポートされていない。proto=sshrsaを
proto=rsa service=tls role=clientに書き換えると Pegasus で使える。すなわち
key proto=rsa service=tls role=client size=1024 ek=29 !dk=16F3288A28B20C38809FEF03D68B8749...
hostkey.secret.factotum
は修正済みとする。term% c=/sys/lib/ssh/cert.pem term% r=/sys/lib/ssh/hostkey.secret.factotum term% b=/usr/local/bin/386 term% $b/mon -du web -r $r $b/httpd -suM -p443 -c $c term% ps ... web 1068 0:00 0:00 1368K Open httpd web 1070 0:00 0:00 248K Pread factotum arisawa 1071 0:00 0:00 188K Pread ps term%なお Pegasus 2.1 の mon ではユーザ web のパスワードが不要である。
ar% /usr/local/bin/386/mon: # setfactotum: write /mnt/factotum/ctl: unknown proto rsaこれは factotum のバージョンが古い。