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

    科技2022-08-11  109

    一、总述

    明确部署架构: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、未完待续

    五、小程序发布

     

     

     

    Processed: 0.010, SQL: 8