使用OpenSSL生成自签名证书用于HTTPS网站测试使用

陪她去流浪 桃子 2015年12月06日 编辑 阅读次数:3865

更新:这篇文章介绍的方法有点老旧麻烦,参考这里的更简单的办法:用 mkcert 搭建本地开发受信 HTTPS 证书环境

在本地环境测试网站HTTPS是否能正确工作时同样需要用到证书,但由于本地环境一般没有公网IP,没有固定域名等原因,所以就会考虑采用非正式的证书,即会选择使用自签名证书(Self-signed SSL Certificate),自签名证书可以使用OpenSSL在当前电脑上生成,但由于没有公证机构,所以生成的证书是不会被浏览器所信任的,在浏览器弹出警告时,可以手动添加到忽略列表中即可。

可用下面的命令生成自签名证书:

1
2
3
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out csr.pem
openssl req -x509 -days 365 -key key.pem -in csr.pem -out cert.pem

所有要求填写的项圴可以留空。其中的 key.pem 即是 私钥,csr.pem 是证书签名请求,cert.pem 即是公开证书。

如果你使用的是 nginx 服务器,则可以像下面这样应用此证书:

1
2
3
4
5
6
7
8
9
server {
    listen              443 ssl;
    server_name         www.example.com;

    ssl_certificate     cert.pem;
    ssl_certificate_key key.pem;

    ...
}

参考

标签:nginx · HTTPS