我有一个朋友信任的pgp公共/私人(RSA)密钥对。我有一个运行的网络服务器,我想生成一个ssl证书,其公钥与我的pgp公钥匹配。
这有什么意义吗?那可能吗 ?这样安全吗?
答案 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密钥进行验证。