(1条消息) openssl与公钥、私钥和证书
ssl:secure socket layer(安全套接层协议)的缩写,通过此协议可以保证两个应用通信的可靠性和保密性。
openssl:是ssl协议的实现。提供了对称加密算法、非对称加密算法以及秘钥证书管理等功能。
公钥私钥:公钥和私钥组成一个密钥对,必须配对使用。一般公钥公开,私钥自己保留。
公钥加密,私钥解密,一般用于传输数据;
私钥加密,公钥解密,一般用于数字签名、验证身份。
证书:全称是公钥证书,由第三方机构CA颁发。CA利用自己的私钥对真正的公钥施加数字签名并生成证书,客户拿到证书后,通过CA的公钥来对证书解密,拿到真正的公钥。证书有两种编码格式:
1.pem:文本格式,以"-----BEGIN..."开头,以"-----end..."结尾,内容是base64编码,Apache和*nix服务器一般使用这种编码;
2.der:二进制格式,不可读,windows服务器一般偏向使用这种。
理论介绍差不多了,下面介绍pfx和crt两种证书的生成。
1.openssl生成秘钥:
openssl genrsa -out server.key 1024
执行此命令后,会在当前目录下生成一个长度为1024的server.key文件。
2.根据server.key文件首先生成cer证书,但该证书不包含私钥,得生成pfx证书:
#利用server.key文件生成server.cer证书
openssl req -new -x509 -key server.key -out server.cer -days 365 -subj /CN=baidu.com
#利用server.key文件和server.cer证书生成pfx证书
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.cer
执行第二条命令生成pfx证书后,会提示输入密码,记住改密码,后面可以通过此密码获取公钥和私钥。
#先获取密钥对pubAndPri.key文件
openssl pkcs12 -in server.pfx -nocerts -nodes -out pubAndPri.key
#提取公钥
openssl rsa -in pubAndpri.key -pubout -out server_pub.key
#提取私钥
openssl rsa -in pubAndpri.key -out server_pri.key
3.根据server.key文件先生成csr证书请求文件,再生成crt证书:
#先根据server.key文件生成server.csr证书请求文件
openssl req -new -key server.key -out server.csr
#利用server.key文件和server.csr证书请求文件生成crt证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
赞 (0)