前言:

最近需要做一个小程序的后台,然后微信小程序的后台大家都知道,需要配置https才可以上线发布。而我本身服务器就已经有了一个博客网站了,所以这里开辟了一个二级域名给微信小程序后台,这里记录一下nginx配置https的过程。

第一步 申请ssl证书

申请ssl证书咯,这一步没啥好说的,我用的是腾讯云,域名也是腾讯云的时候买的,所以就在腾讯云搞了。

然后下载证书。解压

nginx二级域名优先级_nginx


此时需要运用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就好啦

总结:

基本到这里就完成啦!!!