OpenSSL 教程
2022-07-30 09:41:34
sizaif
基础知识
.crt .pem .key
PEM - Privacy Enhanced Mail 以“-----BEGIN…”开头,“-----END…”结尾,内容是 BASE64
编码。
PEM格式是证书颁发机构颁发证书的最常见格式.PEM证书通常具有扩展名,例**.pem,.crt,.cer和.key**。它们是Base64编码的ASCII文件,包含“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”语句。服务器证书,中间证书和私钥都可以放入PEM格式。
DER - Distinguished Encoding Rules
DER格式只是证书的二进制形式,而不是ASCII PEM格式。它有时会有**.der的文件扩展名,但它的文件扩展名通常是.cer所以判断DER .cer文件和PEM .cer文件之间区别的唯一方法是在文本编辑器中打开它并查找BEGIN / END语句。所有类型的证书和私钥都可以用DER格式编码。DER通常与Java平台一起使用,**Java 和 Windows 服务器偏向于使用这种编码格式。SSL转换器只能将证书转换为DER格式
CRT 是 certificate 的三个字母,其实还是证书的意思。常见于 UNIX 系统,有可能是 PEM 编码,也有可能是 DER 编码,大多数应该是 PEM 编码,相信你已经知道怎么辨别。
CER 还是 certificate,还是证书。常见于 Windows 系统,同样的可能是 PEM 编码,也可能是 DER 编码,大多数应该是 DER 编码。
KEY 通常用来存放一个公钥或者私钥,并非 X.509 证书。编码同样的,可能是 PEM,也可能是 DER
CSR Certificate,Signing Request,即证书签名请求。这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息)。在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好。做过 iOS APP 的朋友都应该知道是,怎么向苹果申请开发者证书的吧。
查看帮助
genrsa
平时主要用来生成私钥,选择使用的算法、对称加密密码和私钥长度来生成私钥
生成一个2048位的RSA私钥,并用des3加密(密码为123456),保存为server.key文件
req
req
的基本功能主要有两个:生成证书请求和生成自签名证书,当然这并不是其全部功能,但是这两个最为常见;
常见使用方法:
主要参数:【更多参数查看:openssl req -help】
使用的案例:利用私钥生成证书请求csr
使用案例:利用私钥生成自签名证书
生成私钥
genrsa genkey这两种方法都创建RSA密钥,尽管格式不同。genrsa输出pkcs# 1格式的RSA密钥,而genpkey输出一个更通用的容器,可以管理不同类型的密钥(RSA、DSA、DH、EC等)
genrsa
例如生成一个2048位的RSA私钥,并用des3加密(密码为123456),保存为rsa_private_key.pem
文件
私钥转⾮加密
私钥转加密
私钥PEM转DER
genkey
genpkey命令用于产生各种密钥(RSA、DSA、DH、EC等)的私钥
生成DSA算法的私钥
生成RSA算法的私钥
生成公钥
公钥由私钥运算生成
生成⾃签名证书
⽣成 RSA 私钥和⾃签名证书
使⽤已有RSA 私钥⽣成⾃签名证书
⽣成签名请求及CA 签名
使⽤ RSA私钥⽣成 CSR 签名请求
此后输⼊密码、server证书信息完成,也可以命令⾏指定各类参数
此时⽣成的 csr签名请求⽂件可提交⾄ CA进⾏签发
使⽤ CA 证书及CA密钥 对请求签发证书进⾏签发,⽣成 x509证书
其中 CAxxx 选项⽤于指定CA 参数输⼊
s_client 与 s_server 相互通信
TODO:
预览: