用 OPENSSL 生成不同格式的密钥

文章目录

密钥 key 值包括
加密算法: RSA/DSA/ECC
加密位数: 1024/2048/4096
密钥口令:加密方式有很多

在使用 DSA/ECC 加密算法时,首先需要生成算法参数文件 param-file

1. 生成 RSA 加密算法密钥

# openssl genrsa -out rsakey.pem 4096

或者是这个指令
# openssl genpkey -algorithm RSA -out rsakey.pem 4096

2. 生成 DSA 加密算法密钥

# openssl dsaparam -out dsaparam.pem 4096
# openssl gendsa dsaparam.pem -out dsakey.pem

或者是这些指令
# openssl dsaparam -in dsaparam.pem -out dsakey.pem
# openssl genpkey -paramfile dsaparam.pem -out dsakey.pem
##openssl genpkey -genparam -algorithm DSA -out dsakey.pem

3. ECC 加密算法密钥

OpenSSL内置椭圆曲线的完整列表可以通过以下命令获得:

# openssl ecparam -list_curves

对于 openssl 内置的曲线中,部分曲线不被浏览器支持,常用的曲线有下列几种或者更多
secp384r1
secp521r1
prime256v1

生成 ECC 加密算法密钥

# openssl ecparam -name prime256v1 -out eccparam.pem
# openssl ecparam -genkey -in eccparam.pem -out ecckey.pem

或者是这个指令
# openssl genpkey -paramfile eccparam.pem -out ecckey.pem

4. 生成证书签发申请时同时生成加密私钥

openssl req

-newkey rsa:bits 生成一个新的指定 ‘bits’ 长度的 RSA 密钥
-newkey dsa:file 生成一个新的 DSA 密钥,file 即参数文件
-newkey ec:file 生成一个新的 EC 密钥, file 即参数文件

5. 生成证书签发申请和签发证书

openssl.exe req -utf8 -sha512 -days 10957 -newkey rsa:4096 -keyout rsa.key -out rsacsr.pem
openssl.exe ca -utf8 -md sha512 -days 3650 -in rsacsr.pem -out cert.cer

 
RSA 算法的密钥支持 sha512 ,而 /DSA/ECC 算法的密钥貌似只支持 sha256 及256以下

原文链接:,转发请注明来源!

发表评论