https 双向认证基本配置学习

本文介绍了HTTPS双向认证的基本概念和配置方法,特别是证书密钥格式,包括DER、PEM、PKCS#8、PKCS#10和PKCS#12。详细讲解了如何在nginx上配置HTTPS双向认证,包括生成自签名CA、服务器端和客户端证书,并提供了openssl常用命令汇总。文章还提到了PHP、Android和iOS对不同格式私钥的支持情况。
摘要由CSDN通过智能技术生成

https 双向认证基本配置学习

一 证书密钥格式

1.1         DER 格式

公钥,证书文件信息格式,通常后缀名是der,cer,crt,内容是二进制数据。

1.2         PEM 格式

私钥,证书,公钥信息格式,通常后缀名是pem,cer,crt,内容是二进制数据base64编码

 

以上截图是利用openssl 工具生成的传统pem格式的私钥文件内容。(注意开头结尾有RSA字母,区别pkcs8格式私钥),上图中

openssl 命令可以将PEM格式转换为DER格式

例如 pem 密钥转换为 der 格式密钥

openssl rsa  -in key.pem –outform der –outkey.der

pem格式证书到der格式证书转换

openssl x509 -in ca-cert.pem -outca-cert.der -outform der

 

pem 和 der 格式的区别是 pem 是 der 格式内容的base64编码加上首尾两行(BEGIN……和END……)

 

1.3         PKCS 格式

PKCS标准目前已经公布了15种

常用的几种如下:

1.3.1  PKCS#8 私钥文件的信息格式

  利用openssl 生成传统格式(PEM)私钥

openss genrsa –out privateKey.pem 2048

转换成pkcs8 格式 (图1.2 的传统格式私钥转换成pkcs8格式)

openssl pkcs8 –topk8 –in privateKey.pem –out privateKeyPkcs8.pem –nocrypt

 

 

注意 区别传统的PEM和PKCS8 格式的私钥方法是:

   1 传统的PEM格式的头部是BEGIN RSA PRIVATE KEY

   2  PKCS#8 格式私钥文件头部是BEGIN PRIVATE KEY

  注意 PHP 语言对于两种格式私钥可以都可以直接使用。

注意 对privateKeyPkcs8.pem 再进行一次pkcs8格式转换,其内容不变(diff–u 比较)。

注意 只有私钥才存在这两种格式(pkcs8 和传统格式)

 

PKCS#8 是RSA公司制定的标准,相对传统PEM私钥格式更加通用些。

 

  另外PKCS#8格式的私钥可以再加密一层(使用对称加密算法),更加安全些。

1.3.2  PKCS#10 证书请求文件信息格式

该文件包括签名算法,公钥信息,申请者信息,使用openssl req 命令可以生成证书请求文件,通常后缀名为csr

例如:openssl req –new –key su-key.pem –outsu-req.csr –days 3650

使用一个私钥su-key.pem 生成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值