在部署线下测试环境时浏览器会自动将http替换成https,又因为测试环境没有证书经常会导致跳转错误,所以自己配置一个ssl证书就可以避免这个问题。
下面记录我在MacOS下自己配置ssl证书的过程
制作证书
- 先进入到
nginx.conf
所在目录,我这里是cd /usr/local/etc/nginx/
- 创建服务器私钥(key)
openssl genrsa -out server.key 1024
- 然后设置一个token,这里会问一大堆问题,第一填’CN’然后后面不用填路回车就行
openssl req -new -key server.key -out server.csr
- 去除密码保护,就不用每次都输密码了
$ cp server.key server.key.org $ openssl rsa -in server.key.org -out server.key
- 最后生成
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
- 将
server.key
和server.crt
文件移动到nginx.conf
文件所在目录可以用别的位置,但有可能出现权限和绝对路径访问等各种问题,笔主就是因为这个踩了好多坑,所以推荐放在这个位置
配置Nginx
-
打开
nginx.conf
修改如下配置如果单独配置了server(在
nginx.conf
使用了include
引用其他的配置文件)则需要在对应的server写配置。server { listen 80 ; listen 443 ssl; server_name localhost; ssl_certificate server.crt; ssl_certificate_key server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ```
-
重启ngixn应用修改
sudo nginx -s reload