Nginx 配置 SSL 证书
配置证书前,需要做好这些准备工作安装 Nginx,ssl 模块,域名解析,证书文件。
- 在 conf 目录下创建文件夹 ssl(存放证书文件)、vhost(存放配置),在 ngxin.conf 的 http 模块中插入 include vhost/*.conf;(引入 vhost 文件夹下的配置文件中)
- 将下载好的证书文件解压到 ssl 目录下,此时只有 .pem、.key两个文件
依次执行如下命令,生成 .cer、.crt 文件。这里的 xxx 大家注意换成自己的文件名称
- openssl pkcs12 -export -out cacert.p12 -in ./xxx.pem -inkey ./xxx.key
- 输入两次服务器密码
- openssl pkcs12 -in cacert.p12 -out xxx.crt -nokeys -clcerts
- 输入一次服务器密码
- openssl x509 -inform pem -in xxx.crt -outform der -out xxx.cer
- 在 vhost 文件夹中新建 xxx.conf,详细配置如下
# 开启SSL
server {
# 监听 443 端口
listen 443 ssl;
# 指定SSL 可访问的网站
server_name test.com;
# 指定crt文件路径
ssl_certificate /usr/local/nginx/conf/ssl/crm.eyunzhirong.com/xxx.crt;
# 指定key文件路径
ssl_certificate_key /usr/local/nginx/conf/ssl/crm.eyunzhirong.com/xxx.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# 指定 SSL 指向本地端口
proxy_pass http://127.0.0.1:18180/;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
- 配置完成,重启 nginx
- nginx常用指令:
- 快速停止:nginx -s stop
- 完整有序停止:nginx -s quit
- 重启:nginx -s reload
- 启动nginx服务:service nginx start
- 重新加载配置文件:nginx -s reload
- 如果是小程序开发,需要对域名进行安全检测
检测地址:https://ssltools.digicert.com/checker/views/checkInstallation.jsp
如果缺少中间证书的话,会出现微信小程序pc端正常,手机端报错 “ request:fail -2:net::ERR_FAILED ”,解决办法在这里
好事定律:每件事最后都会是好事,如果不是好事,说明还没到最后。