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 生成