公钥、私钥、证书的生成

公钥私钥作用

公钥加密 私钥解密
私钥加签 公钥验签

场景

互联网开发中,用户一般有 服务端的公钥 和用户自己的私钥
服务端存有用户的公钥 和 服务端的私钥。
例如:

商户请求平台接口时:

  • 商户私钥加签 平台使用商户公钥验签
  • 商户使用平台公钥进行私密字段的加密 平台使用平台私钥解密

平台响应商户时:

  • 平台私钥加签 平台公钥验签

证书生成脚本

cd /usr/ssl/merCA/
openssl genrsa -out $1.key.pem 1024
echo "CN" > $1.cnf
echo "Beijing" >> $1.cnf
echo "Beijing" >> $1.cnf
echo "公司名 Ltd" >> $1.cnf
echo "公司名" >> $1.cnf
echo "$1" >> $1.cnf
echo "" >> $1.cnf
echo "" >> $1.cnf
echo "" >> $1.cnf

pwd
cat $1.cnf | openssl req -new -key $1.key.pem -out $1.req.pem
openssl x509 -days 365 -req -in $1.req.pem -addtrust clientAuth -addtrust serverAuth -addtrust emailProtection -CA merCaCert.pem -CAkey merCaKey.pem -CAserial serial -out $1.cert.pem
openssl x509 -in $1.cert.pem -noout -text
openssl x509 -in $1.cert.pem -outform DER -out $1.cert.crt
openssl pkcs8 -topk8 -in $1.key.pem -nocrypt -outform DER -out $1.key.p8
openssl rsa -in $1.key.pem -outform DER -out $1.key.der
openssl pkcs12 -export -inkey $1.key.pem -in $1.cert.pem -name $1 -certfile merCaCert.pem -caname "公司名 Mer CA" -passout pass:88888888 -out $1.p12

dir="/usr/mpsp/b2b/MerCert/"`echo "$1" |awk -F '_' '{print $1}'`
echo "$dir"
echo "$1"
mkdir $dir
mv $1* $dir/

脚本解析

openssl genrsa .. 生成私钥  --------- 商户私钥pem
openssl req -new -key .. 根据私钥,生成公钥.pem证书 --------- 商户公钥pem
openssl x509 -days 365 -addturst ..  指定证书生效时间 及使用场景
openssl x509 -in -noout -text 输出证书内容
openssl x509 -in -outform DER 生成公钥.crt证书 --------- 商户公钥crt
openssl pkcs8 -topk8 生成p8格式个人证书 --------- 商户私钥p8
openssl rsa -in ...   私钥pem转der --------- 商户私钥der
openssl pkcs12 -in ...  
PEM格式:用ASCLL(Base64)编码的证书,文本文件可阅读
der格式:用二进制DER编码的证书
.crt .cer:后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值