问题描述
似乎以下两个命令(来自 LibreSSL 的 openssl)都生成私钥。它们之间有区别吗?如果不是,为什么有两种方法可以生成私钥?谢谢。
openssl genrsa -out key.pem 1024
openssl genpkey -algorithm rsa -out privkey.pem -pkeyopt rsa_keygen_bits:1024
解决方法
这两种方式都会创建 RSA 密钥,尽管格式不同。 genrsa
输出 PKCS#1 格式的 RSA 密钥,而 genpkey
输出可以管理不同类型密钥(如 ECC)的更通用的容器。有关详情,请参阅 Differences between “BEGIN RSA PRIVATE KEY” and “BEGIN PRIVATE KEY"。
请注意,documentation for genpkey 明确指出应使用此工具而不是特定于算法的 genrsa:
鼓励使用 genpkey 程序而不是特定于算法的实用程序,因为可以使用其他算法选项和 ENGINE 提供的算法。