私は友人が信頼している pgp 公開/秘密 (RSA) キー ペアを持っています。Web サーバーを実行していて、公開鍵が私の pgp 公開鍵と一致する ssl 証明書を生成したいと考えています。
それは意味がありますか?それは可能ですか?それは安全ですか?
PGP 鍵の鍵形式が X.509 形式でもサポートされている場合、それは可能です。RSA もその 1 つです。
これは、BouncyCastleを使用して PGP 証明書を自己署名 X.509 証明書に変換するJava 実装です(ロードする前に、BouncyCastle セキュリティ プロバイダをロードする必要があります)。
ほとんどの人がPGP 公開鍵と呼んでいるものは、実際にはPGP 証明書であることに注意してください。公開キー自体は、これらの証明書に含まれる RSA キー (またはその他の形式) です。したがって、キー マテリアルを取得して、それを別のマテリアルで使用することができます。ただし、そうすることで、PGP 証明書を証明書にする情報、つまり ID へのキーのバインドと、他のユーザーによって追加された署名 (PGP モデルに従う) が失われます。
おそらく、PGP 証明書の追加情報を X.509 証明書の独自の拡張機能に入れることができます。
そうすることが理にかなっているかどうかは、おそらく何を達成したいかによって異なります。同じキー マテリアルを再利用するということは、多かれ少なかれ「あなた」 (PGP 証明書の背後にある ID) と Web サーバーがまったく同じになることを意味します。多くの場合、root ユーザーのみがアクセスできますが、秘密鍵をサーバーに保存するときにパスワードで保護しないように要求します)。さらに、「不明な証明書」警告ボックス内を掘り下げて、公開鍵があなたのものと一致することを確認したい場合を除いて、Web サイトにアクセスしようとしている訪問者にとって、これはおそらくあまり役に立ちません (彼らは知っているかもしれません)。
MonkeySphere プロジェクトをチェックしてください: http://web.monkeysphere.info/
SSL 証明書を生成する手順: http://web.monkeysphere.info/doc/host-keys/
また、Firefox 拡張機能があるため、友人は PGP キーを使用して検証できます。