OpenSSL
- 用于实现SSL协议,能实现证书生成、证书签名、密钥生成、加解密等各种操作
命令行举例
openssl version
openssl prime
echo "encode me" |openssl | enc -base64 /*对字符串encode me进行base64编码*/
echo "ZW5jb2RIIG1lCg==" | openssl enc -base64 -d /*对经过base64进行编码的字符串进行解码*/
自建HTTPS(使用OpenSSL)
- 生成CA根证书
- 为网站生成CSR(Certificate Signing Request,证书签名请求)
- CA对CSR签名,生成网站证书
- 建立网站,修改Apache配置(在apache配置中使用自己生成的证书)
- 重启apache,在浏览器中使用https访问网站
生成CA
- 生成CA根证书(cacert.com)
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1925
- 生成服务器签名证书请求(tempreq.pem)、服务器密钥(tempkey:服务器私钥)
openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM
- CA对服务器请求证书进行签名
openssl ca -in tempreq.pem -out server_crt.pem*在使用第一、二条命令之前,要先生成CA配置文件、服务器配置文件,用来告诉命令关于CA和服务器的基本信息。
- 输入以上三条命令之后,能获得:
- 网站服务器的签名证书:server_crt.pem
- 网站服务器的私钥:server_key.pem