如果你的PGP密钥格式也支持X.509格式,那么是可以实现的,RSA就是其中之一。这里有一个Java实现,使用BouncyCastle将PGP证书转换为自签名的X.509证书(需要在加载它之前加载BouncyCastle安全提供程序)。请注意,大多数人所说的PGP公钥实际上是PGP证书。公钥本身是包含在这些证书中的RSA密钥(或其他格式)。因此,可以获取密钥材料并在另一个证书中使用它。然而,这样做会失去使PGP证书成为证书的信息:将密钥绑定到标识和由其他人添加的签名(遵循PGP模型)。您可能可以将PGP证书的额外信息放入自己的扩展中的X.509证书中。使用相同的密钥材料可能取决于您想要实现什么。再次使用相同的密钥材料或多或少意味着“您”(PGP证书背后的ID)和您的Web服务器成为同一个,因为如果一个私钥被泄露,另一个也会被泄露(例如,Apache Httpd要求私钥在存储在服务器上时不受密码保护,尽管通常只能由root用户访问)。此外,这对于访问网站的访客可能没有太大帮助,除非他们想深入研究“未知证书”警告框以检查公钥是否与您的匹配(他们可能知道)。
请查看MonkeySphere项目: http://web.monkeysphere.info/ 如何生成SSL证书的说明: http://web.monkeysphere.info/doc/host-keys/ 此外,这个项目还有一个Firefox扩展,让你的朋友可以通过你的PGP密钥进行验证。