openssl ecc和rsa密钥对以及证书生成
密钥对生成
rsa密钥对生成
- 私钥生成
openssl genrsa -out rsa_private_key.pem 1024
- 公钥生成
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
ec密钥对生成
- 私钥生成
openssl ecparam -genkey -name prime256v1 -param_enc explicit -outform pem -out ec_prikey.pem
- 公钥生成
openssl ec -in ec_prikey.pem -pubout -out ec_pubkey.pem
证书生成
rsa算法证书生成
- 生成私钥
openssl genrsa -out server.key 2048
- 证书生成
openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
ec算法证书生成
算法支持查询
openssl ecparam -list_curves
密钥生成
-
生成私钥
openssl ecparam -genkey -name prime256v1 -param_enc explicit -outform pem -out ec_prikey_ca.key
-
证书生成
openssl req -new -key ec_prikey_ca.key -out ec_ca.csr openssl x509 -req -days 365 -in ec_ca.csr -signkey ec_prikey_ca.key -out ec_ca.crt
非对称RSA算法,散列算法sha512的证书生成
#!/bin/bash
#512 不做处理,因为512的算法无法对应的证书
for item in 1024 2048 4096 8192
do
FILENAME=rsa_private_key_${item}_sha512
openssl genrsa -out ${FILENAME}.key $item
openssl req -new -key ${FILENAME}.key -out ${FILENAME}.csr
openssl x509 -req -sha512 -days 365 -in ${FILENAME}.csr -signkey ${FILENAME}.key -out ${FILENAME}.crt
done
合并证书
将私钥和证书合并。
openssl pkcs12 -export -clcerts -in kehuduan.crt -inkey kehuduan.key -out kehuduan.p12 -passin pass:123456 -password pass:123456