安装或升级openssl
yum install -y openssl
构建根证书前,需要构建随机数文件(.rand),完整命令如
openssl rand -out /etc/pki/CA/private/.rand 1000
这里的参数1000,指定来产生伪随机字节数
构建根证书私钥和证书请求的csr文件
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj /CN=123.com
CN是Common Name,也支持泛域名如*.123.com也可以是IP,自定义填写信息,不带-subj即可
这样就在当前目录得到了服务器端私钥server.key和证书请求文件server.csr
签发证书
openssl x509 -days 36500 -req -in server.csr -signkey server.key -out server.crt
得到了签发后的crt证书文件,至此,证书生成完毕!
nginx使用的server.crt和server.key
如需要生成pem格式证书
cat server.crt server.key > server.pem
将.crt格式的证书转换成IIS需要的.pfx格式(记住密码,IIS导入的时候需要)
openssl pkcs12 -export -out iis.pfx -inkey server.key -in server.crt
注意
- 因自建CA签发的证书不受信任,造成的证书警报,访问的客户端IE浏览器可通过安装该证书解决,
IE浏览器点击“证书错误”>“查看证书”>“安装证书”证书存储选“受信任的根证书颁发机构”>重启浏览器即可。 - 谷歌浏览器要求高,就无法解除警报了。
- 如果单纯为了https而弄,是可以使用其他域名签发的证书文件、甚至过期的,反正浏览器都会证书警报的。(但因证书和域名不吻合,客户端安装该证书也是无法解除警报)