Logo address

HTTPS によるサービス

目次

HTTPS によるサービスを行う場合には証明書(certificate)を作成する必要がある。これについては 別ページで解説済なので省略する。
cert.pemkey.pem が準備されたとして、そこから話を進めよう。

鍵の置き場所

これらを Plan9 のサーバに /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.pemkey.pem は同じ場所に置く方がよいとも思える。これらはどこにでも置く事ができるのだ。)

筆者は key.pem を

	$home/private/ssl
に置いている。$homebootes のホームディレクトリである。

Factotum へ key.pem を登録

factotom に 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 の中で利用している。

Pegasus の起動

Pegasus で HTTPS のサービスを行うには原理的にはユーザ web になって
	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
を実行すればよい。
ユーザ web になるには
	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
を内容とするファイルである。
これらの事は、Pegasus の配布に含まれる mon を使用すると /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
によって作成される。

/rc/bin/cpurc

筆者のものを紹介する
	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

現在稼働実験中

Pegasus の HTTPS は 8月29日より稼働実験中である。
https://plan9.aichi-u.ac.jp にアクセスして確認できる。
ブラウザは「証明書(certificate)」に対してクレームをつけるが、気にしないで…