环境:Ubuntu18.04 LTS(64bit)

注意:
*确保安装最新的的OpenSSL
*自签证书会引起浏览器警告。在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的
*生成的证书文件在执行命令的目录,建议在空白目录下执行命令

1.生成私钥
使用openssl工具生成一个RSA私钥

openssl genrsa -des3 -out server.pass.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。

2.生成CSR(证书签名请求)

openssl req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致。

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SC
Locality Name (eg, city) []:Chengdu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:WA
Organizational Unit Name (eg, section) []:technology
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:example@gmail.com

3.删除私钥server.pass.key中的密码
在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:

openssl rsa -in server.pass.key -out server.key

4.生成自签名的SSL证书

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

#3650为生成ssl证书可用天数,可自行修改
#crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等第2步时填写的信息。

5.crt转pem

openssl x509 -in server.crt -out server.pem

6.自签证书文件的存放位置
生成的证书文件在执行命令的当前目录,建议在空白目录下执行命令。