域名已经是a+级证书了,微信小程序还是无法访问问题

升级https就不细讲了,我的思路是用nginx修改配置文件即可。怎么修改可以按照你购买的域名公司自带的教程执行。我是使用阿里云购买的域名,通过备案后申请个人免费的ssl证书,下载nginx的证书和密钥,上传到nginx和nginx.conf的文件夹下,然后修改Nginx的配置文件即可。具体按照下面来。

后来升级https后,网页端可以访问,且使用专业的检测工具测试,网站的安全等级为a+级别,发现微信小程序中还是post失败,报错ssl_err。

经检查,jar包使用docker部署在8090端口,正常访问你的域名https://www.xxxxx.xyz的话应该是默认443端口,但我微信小程序此时请求的是

https://www.xxxxx.xyz:8090/uploadimg的格式,此时8090应该是接不到https请求的。

正确的请求应该是https://www.xxxxx.xyz/uploadimg

所以应该利用Nginx反向代理,将/uploading请求直接转发到8090端口即可。也就是在nginx.conf文件的http模块里的https的server模块里添加location动态代理。直接转发到服务器自己的8090端口,http://localhost:8090/uploadImg;的位置。

这样微信小程序不需要考虑后续转发8090端口的问题,微信小程序客户端只知道自己请求的是一个安全级别很高的https网站。

贴一下我的整个nginx.conf文件,记得修改server_name为自己的服务器地址

########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数
}
​
​
http {
    include mime.types;
    default_type application/octet-stream;
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
    access_log log/access.log myFormat;
    sendfile on;
    keepalive_timeout 20;
​
    server {
        listen 80;
        server_name xxxxxxx;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl;
        server_name xxxxxxxx;
​
        ssl_certificate /usr/local/nginx/conf/cert/www.grpusz.xyz.pem;
        ssl_certificate_key /usr/local/nginx/conf/cert/www.grpusz.xyz.key;
​
        # 启用的协议
        ssl_protocols TLSv1.2 TLSv1.3;
​
        # 优先使用强加密套件(FS系列)
        ssl_ciphers 'EECDH+AESGCM:EECDH+CHACHA20:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_prefer_server_ciphers on;
​
        # 其他 SSL 设置
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_session_tickets off;
​
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
​
        # CORS 设置
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'Content-Type, Authorization';
​
        # 服务器位置
        location / {
            root /usr/picture;
            try_files $uri $uri/ =404;
        }
        #反向代理到其他端口,我的业务需要传大文件,所以设了50mb的size,你们可以删除
        location /uploadImg {
            proxy_pass http://localhost:8090/uploadImg;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
           
            client_max_body_size 50M;
        }
​
        error_page 404 /404.html;
        location = /404.html {
            root /usr/picture;
            internal;
        }
    }
}
​
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值