前言:
最近需要做一个小程序的后台,然后微信小程序的后台大家都知道,需要配置https才可以上线发布。而我本身服务器就已经有了一个博客网站了,所以这里开辟了一个二级域名给微信小程序后台,这里记录一下nginx配置https的过程。
第一步 申请ssl证书
申请ssl证书咯,这一步没啥好说的,我用的是腾讯云,域名也是腾讯云的时候买的,所以就在腾讯云搞了。
然后下载证书。解压
此时需要运用scp命令将nginx文件夹下的.crt .key结尾的文件传输的服务器处,这些是SSL证书的公共(. crt ) 和私有(. key ) 部分,不要随意泄漏出去哦,后面配置nginx会用到
第二步 配置nginx
1.配置nginx.conf文件(abc.hhahaha.com为示例写法非本人服务器)
#house
include /usr/local/nginx/vhosts/abc.hhahaha.com.conf;
由于已经有了一个博客网站了,就将其配置文件以网站url命名,以免都写在ngnix.conf中,显得太臃肿了。。在nginx目录下新建一个vhosts文件夹,然后新建abc.hhahaha.com.conf文件
2.配置abc.hhahaha.com.conf
这里是根据nginx.conf里面的一个例子改的,nginx已经写了个例子在里面,只需该参数即可。。下面要改的地方我已经加了中文解释
#不强制将http请求转为https
server {
listen 80;
server_name 域名;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8088;#需要将请求分发给那个端口下的服务
}
}
# HTTPS server
server {
listen 443 ssl;
server_name 域名
ssl_certificate 路径.crt; #填写第一步中获取的文件
ssl_certificate_key 路径 .key; #填写第一步中获取的文件
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8088;#需要将请求分发给那个端口下的服务
}
}
第三步 最简单的一步 重启nginx咯
去nginx/sbin目录下
./nginx -s reload即可
不过可能会出现的报错
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37
这就是Nginx如果未开启SSL模块,配置Https时提示错误
参考解决方案:
第四步 也是最后最最最简单的一步 开放443端口
不同版本的操作系统有不同的开放方式,例如老一点的就iptables,博主的新一点儿就是firewall。。这个自行google就好啦
总结:
基本到这里就完成啦!!!