插件窝 干货文章 OpenSSL在Linux上如何生成密钥对

OpenSSL在Linux上如何生成密钥对

密钥 private OpenSSL pem 129    来源:    2025-05-08

在Linux上使用OpenSSL生成密钥对(如RSA、ECC)的步骤如下:


一、生成RSA密钥对

1. 生成私钥(默认PKCS#1格式)

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
  • -pkeyopt rsa_keygen_bits:2048:指定密钥长度为2048位(推荐安全值)
  • 输出文件:private_key.pem(PEM格式)

2. 从私钥提取公钥

openssl rsa -pubout -in private_key.pem -out public_key.pem

二、生成ECC密钥对(如secp256k1)

1. 生成私钥

openssl genpkey -algorithm EC -out ec_private_key.pem \
  -pkeyopt ec_paramgen_curve:secp256k1
  • 支持的曲线:secp256k1(比特币)、prime256v1(NIST P-256)、secp384r1

2. 提取公钥

openssl ec -pubout -in ec_private_key.pem -out ec_public_key.pem

三、密钥格式转换

1. PKCS#1 → PKCS#8(私钥)

openssl pkcs8 -topk8 -inform PEM -in private_key.pem -out private_key_pkcs8.pem -nocrypt

2. 生成DER格式(二进制)

openssl rsa -in private_key.pem -outform DER -out private_key.der

四、验证密钥

# 查看私钥信息
openssl pkey -in private_key.pem -text -noout

# 验证公钥是否匹配
openssl pkey -pubin -in public_key.pem -text -noout

五、常用参数说明

参数 作用
-aes256 用AES-256加密私钥(需设置密码)
-nocrypt 生成无加密的私钥
-outform DER 输出二进制格式
-pkeyopt 指定算法参数(如密钥长度、曲线类型)

注意事项

  1. 密钥保护:生产环境建议使用-aes256加密私钥
  2. 密钥长度:RSA推荐≥2048位,ECC推荐≥256位
  3. 文件权限:设置私钥为仅当前用户可读(chmod 400 private_key.pem

如需生成用于SSL/TLS的证书请求(CSR),可继续使用:

openssl req -new -key private_key.pem -out csr.pem