暗号化通信のためにHTTPSを使いたいのですが、お金もないので自前の認証局を使おうかと思っています。このとき、自前の認証局で生成したサーバ証明書をネットワーク経由で安全に友人へ提供する方法がないか考えています。
自前の認証局を使って作成されたサーバ証明書は、USBメモリ経由などで安全に渡すことができれば、使うことができます。FireFoxの場合はサイト証明書としてインポートします。IEの場合はどうやらサイト証明書という考え方がないようなので、ちょっと難しいようです。PKIよくある勘違い(8)「自分専用なのに第三者から証明書を買えというのはおかしい」が参考になります。
これを何とかUSBメモリ経由ではなくてネットワークでやりたいところなのですが… 対象は小さな団体を考えています。
- 全員SSHが使えるならpublic key を提出してもらって、サーバ証明書をおいたサーバへのSSHによるアクセスができるようにする。そして、そこからscp でサーバ証明書を持っていってもらう。この場合、ホスト名ではなくIPでSSHアクセスをしてもらうようにする。取得してもらったサーバ証明書はブラウザへインポートしてもらう。
- HTTPSが使えるサイトを1つ用意する。これはベリサインなどから証明書を購入しておく。そのサーバを経由してサーバ証明書をダウンロードしてもらう。取得してもらったサーバ証明書はブラウザへインポートしてもらう。
- PGPか何かを使って改竄されていないことを保証できるようにして、メールでサーバ証明書を送付する。受け取ったらSkypeなどで送付したかを確認してもらうよう、あらかじめ約束しておく。取得してもらったサーバ証明書はブラウザへインポートしてもらう。
- HTTPSを使えるように設定をしておいて、IPアドレス指定でHTTPS経由でアクセスしてもらう。IPアドレス指定なので、使いたいサーバそのものなので、そこで警告ダイアログは表示されるが、そのまま信頼するにして、証明書をブラウザへインポートしてもらう。
- PGPで暗号化したサーバ証明書をWebサイトからダウンロードしてもらって、ブラウザへ登録してもらう。WebサイトへのアクセスについてはIPアドレスでしてもらう。取得してもらったサーバ証明書はブラウザへインポートしてもらう。
なんかいい方法はないのでしょうか… 1, 2, 3 は面倒ですし、4 は警告ダイアログを無視させるというのが何となく嫌です。もしかして、5 がいいのかも。