微信小程序 服务器 证书 https 域名 springboot jar+nginx 部署

一、总述

明确部署架构:springboot jar或者tomcat部署+nginx负责证书绑定、https、域名重定向,避免tomcat配置证书,修改代码业务逻辑,减少部署端口、证书等业务代码层面的配置

二、openssl安装

1、下载 openssl安装包和源码,如下图https://oomake.com/download/openssl

2、安装Win64 OpenSSL v1.0.1j

3、添加openssl环境变量:bin目录

4、解压源码

解压openssl-1.0.1j.tar.gz,找到\openssl-1.0.1j\apps目录,拷贝demoCA目录和openssl.cnf文件到Openssl的安装目录下的bin目录下(即C:\OpenSSL-Win64\bin\)

三、openssl创建证书

1、目前阿里云已经没有免费的证书可以直接下载了,需要手动创建

2、生成证书,命令行执行

cd D:/OPENSSL//到准备生成证书的额目录


openssl genrsa -out server.key 2048

openssl req -new -key server.key -out server.csr

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

根据命令行提示,粉笔输入国家、省、市等信息,注意host要填写域名地址,微信小程序会检测证书与真实域名一致性

生成下图证书

三、nginx部署正式与反向代理

1、解压nginx

2、conf目录下新建文件夹,将证书拷贝进去

3、修改conf下nginx.conf

(1)将原来的被注释的HTTPS 的server配置全部恢复,用以配置证书

(2)正确配置如下,配置证书路径和代理项目地址

# HTTPS server
    #
    server {
        listen       443 ssl; //证书默认443端口
        server_name  localhost; //域名
        ssl_certificate      openssl/server.crt; //上面的conf下的证书路径,从阿里云买的是.pem文件,自己生成的是.crt
        ssl_certificate_key  openssl/server.key;//证书秘钥

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
				proxy_pass http://127.0.0.1:82/;  //反向代理,指向真实的项目地址(tomcat或者jar)
                /**以下为固定配置**/
                fastcgi_ignore_client_abort on;
				proxy_store    off;
				proxy_redirect    off;
                proxy_ignore_client_abort on;
                proxy_connect_timeout 300s;
                proxy_read_timeout 300s;
                proxy_send_timeout 300s;
				proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
				proxy_set_header Host $host;
                proxy_set_header REMOTE_ADDR $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

(4)修改原来的htttp server 80配置,当用户以普通http访问时,跳转至https

server {
		listen 80;
		server_name localhost;
		index index.html index.php index.htm;
	 
		return  301 https://$server_name$request_uri;  
	}

4、非常重要,配置https,一定要重启nginx,不是重载,不是双击exe,没用,会不生效

以下新增.bat文件实现nginx管理

在nginx文件下新增restart.txt,复制下方内容,修改文件为.bat,双击运行即可实现重启

cd E:\application\nginx-1.16.1
nginx -s reload
nginx -s quit
taskkill /f /t /im nginx.exe
start nginx
nginx -V
cmd

5、服务器防火墙增加443入站规则

6、阿里云ECS增加安全组件的规则443

7、测试

服务器内部https:localhost测试效果;外部通过telnet https://外网IP测试

四、域名

1、购买域名,申请实名

2、解析域名至IP

3、未完待续

五、小程序发布

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值