使用 OpenSSL 生成随机密钥对(包括私钥和公钥)是一个常见的安全操作。以下是生成不同类型密钥对的步骤:
生成 2048 位的 RSA 私钥:
openssl genrsa -out rsa_private_key.pem 2048
这条命令会在当前目录下生成一个名为 rsa_private_key.pem 的文件,里面包含生成的 2048 位 RSA 私钥。
从私钥生成公钥:
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
这条命令会读取 rsa_private_key.pem 文件并生成对应的公钥,保存到 rsa_public_key.pem 文件中。
生成 ECC 私钥(以 secp256k1 曲线为例):
openssl ecparam -name secp256k1 -genkey -noout -out ecc_private_key.pem
这条命令会生成一个 secp256k1 曲线的 ECC 私钥,并保存到 ecc_private_key.pem 文件中。
从 ECC 私钥生成公钥:
openssl ec -in ecc_private_key.pem -pubout -out ecc_public_key.pem
这条命令会读取 ecc_private_key.pem 文件并生成对应的公钥,保存到 ecc_public_key.pem 文件中。
DSA 密钥对的使用已经不如 RSA 和 ECC 普遍,但如果你需要生成 DSA 密钥对,可以使用以下命令:
生成 DSA 私钥:
openssl dsaparam -out dsa_private_key.pem 2048
openssl gendsa -out dsa_private_key.pem dsa_private_key.pem
这条命令会生成一个 2048 位的 DSA 私钥并保存到 dsa_private_key.pem 文件中。
从 DSA 私钥生成公钥:
openssl dsa -in dsa_private_key.pem -pubout -out dsa_public_key.pem
这条命令会读取 dsa_private_key.pem 文件并生成对应的公钥,保存到 dsa_public_key.pem 文件中。
确保生成的密钥文件权限设置正确,以防止未经授权的访问。例如,私钥文件的权限通常应设置为仅用户可读:
chmod 600 rsa_private_key.pem
chmod 600 ecc_private_key.pem
chmod 600 dsa_private_key.pem
使用强密码短语保护私钥,以增强安全性。
通过这些步骤,你可以使用 OpenSSL 轻松生成安全的随机密钥对。