是否可以从pgp公钥/私钥创建一个ssl证书?

时间:2010-10-31 00:33:37

标签: ssl openssl pgp gnupg

我有一个朋友信任的pgp公共/私人(RSA)密钥对。我有一个运行的网络服务器,我想生成一个ssl证书,其公钥与我的pgp公钥匹配。

这有什么意义吗?那可能吗 ?这样安全吗?

2 个答案:

答案 0 :(得分:7)

如果您的PGP密钥中的密钥格式也支持X.509格式,则可以。 RSA就是其中之一。

以下是使用Java implementation将PGP证书转换为自签名X.509证书的BouncyCastle(您需要在加载之前加载BouncyCastle安全提供程序)。

请注意,大多数人称之为 PGP公钥的实际上是 PGP证书。公钥本身是包含在这些证书中的RSA密钥(或其他格式)。因此,可以获取关键材料并在另一个中使用它。 但是,通过这样做,您将丢失使PGP证书成为证书的信息:密钥与身份的绑定以及其他人添加的签名(遵循PGP模型)。

您可能会将PGP证书的额外信息放入X.509证书中您自己的扩展中。

这样做是否有意义可能取决于你想要达到的目标。重复使用相同的密钥材料或多或少意味着“你”(PGP证书背后的ID)和你的网络服务器变得一致,因为如果一个私钥被泄露,另一个私有密钥也是如此(例如,Apache Httpd,要求私钥在存储在服务器上时不受密码保护,尽管通常只能由root用户访问。 此外,这可能对访问该网站的访问者没有多大帮助,除非他们想要在“未知证书”警告框中挖掘以检查与您的公钥匹配(他们可能知道)。

答案 1 :(得分:4)

签出MonkeySphere项目: http://web.monkeysphere.info/

有关如何生成SSL证书的说明: http://web.monkeysphere.info/doc/host-keys/

它有一个firefox扩展,所以你的朋友可以通过你的PGP密钥进行验证。