HTTPS によるサービスを行う場合には証明書(certificate)を作成する必要がある。これについては 別ページで解説済なので省略する。
さて factotum へのパッチ充てとカーネルの再コンパイルが完了し、 cert.pem
と key.pem
が準備されたとして、そこから話を進めよう。
/sys/lib/tls
にコピーする。アクセスモードは、--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
を登録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/tls/key.pem > /mnt/factotum/ctl注意: factotum へのパッチ、またそれに基づくカーネルの変更を忘れるな。
/usr/local/bin/386/httpd -us -p443 -c/sys/lib/tls/cert.pemを実行すればよいのであるが、Pegasus の配布に含まれる mon を使用するとユーザ bootes から
mon -du web -p passwordfile /usr/local/bin/386/httpd -suM -p443 -c/sys/lib/tls/cert.pemここに passwordfile はユーザ web になるに必要なパスワードが含まれているファイルである。
auth/secretpem /usr/bootes/private/key.pem > /mnt/factotum/ctl a=/usr/local/bin/$cputype c=/sys/lib/tls/cert.pem p=/usr/web/lib/passwd $a/mon -du web -p $p $a/httpd -suM $a/mon -du web -p $p $a/httpd -suM -p443 -c $c筆者はまだパスワード関係のファイルの置き場所に関する一貫した方針を持っていない。(そんな事をやっていれば、そのうち失敗するであろう)
https://plan9.aichi-u.ac.jp+: