关于https真机调试与小程序发布的总结

前言

因为个人写的小程序涉及到WebSocket,所以得使用https请求,这时候就涉及到服务器、域名和SSL证书,这三个缺一不少。

1、申请服务器、域名和SSL证书

可以访问腾讯云官网:https://cloud.tencent.com/,申请个便宜点的域名,个人买的是2核2G3兆的,具体根据个人需求来,具体截图如下:

1.1、服务器申请:

1.2:、域名申请与备案

这里可以访问这个链接进行域名购买https://cloud.tencent.com/product/domain域名注册_域名查询_域名购买_域名续费-腾讯云https://cloud.tencent.com/product/domain,域名购买成功之后得申请备案,因为只有申请备案才可以进行SSL证书申请,个人买的下图中的域名,具体截图如下:

提示:

注意:

小程序审核一定要到小程序的官网上审核:微信公众平台

1.3、SSL证书申请

目前腾讯云有免费的SSL的证书可以申请,可参考:SSL证书免费申请流程:SSL 证书 免费 SSL 证书申请流程_腾讯云

免费证书有效期一般90天

做足这些准备基本上做小程序的发布和真机调试就没有问题了

2、真机报错中遇到的问题总结

1、报 “error“:600001,“errMsg“:“request:fail -200:net::ERR_CERT_COMMON_NAME_INVALID”
问题分析:

遇到这个错误通常是由于 SSL 证书问题引起的,尤其是证书的域名与请求的服务器不匹配。具体来说,“ERR_CERT_COMMON_NAME_INVALID”表示 SSL 证书的通用名称(CN)与请求的域名不一致。解决此问题的几个步骤如下:

1. 检查证书:
   - 确保你的服务器使用的是有效的 SSL 证书,并且证书中的域名与小程序请求的域名一致。可以通过浏览器访问接口地址,检查证书详情,确认其是否有效。

2. 使用正确的域名:
   - 确保微信小程序请求的 URL 地址与服务器配置的域名匹配。例如,如果你使用了 `api.example.com`,证书中也需要包括这个域名。

3.*检查证书是否过期:
   - 如果 SSL 证书已经过期,可能会导致这个错误。请检查证书的有效期并确保它仍然有效。

4. 更新证书:
   - 如果证书过期或者是自签名证书,考虑更换为由受信任的证书颁发机构签发的证书。

5. 确认小程序的域名设置:
   - 在微信小程序的管理后台,确认你已经将正确的域名加入了 `服务器域名` 和 `请求合法域名` 白名单。

6. 检查代理/中间件配置:
   - 如果你使用了代理服务器或者负载均衡等中间件,确认这些设备或配置没有引起 SSL 证书的替换或不匹配。

7. 重新启动服务器:
   - 证书更新后,可能需要重启 Web 服务器才能让新的证书生效。

如果这些步骤都没有解决问题,可以尝试使用一些 SSL 调试工具(例如 [SSL Labs](https://www.ssllabs.com/ssltest/))来进一步诊断服务器证书的问题。

2.1、检查小程序后台有没有配置

打开微信小程序,开发管理->服务器域名

2.2、注意事项
  • 域名不能使用 IP 地址(小程序的局域网 IP 除外)或 localhost;
  • 可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080 发起请求。如果向 https://myserver.com、https://myserver.com:9091 等 URL 请求则会失败。
  • 如果不配置端口。如 https://myserver.com,那么请求的 URL 中也不能包含端口,甚至是默认的 443 端口也不可以。如果向 https://myserver.com:443 请求则会失败。
  • 域名必须经过 ICP 备案;
  • 出于安全考虑,api.weixin.qq.com 不能被配置为服务器域名,相关 API 也不能在小程序内调用。 开发者应将 AppSecret 保存到后台服务器中,通过服务器使用 getAccessToken 接口获取 access_token,并调用相关 API;
  • 不支持配置父域名,使用子域名。
  • 服务、域名、SSL证书缺一不可,而且一定要经过备案
2.3、证书要求
  • HTTPS 证书必须有效;
    • 证书必须被系统信任,即根证书被已系统内置
    • 部署 SSL 证书的网站域名必须与证书颁发的域名一致
    • 证书必须在有效期内
    • 证书的信任链必需完整(需要服务器配置)  重点

由上图可见,证书级别为B,提示证书链不完整。

2、“errno“:600001,“errMsg“:“request:fail -118:net::ERR_CONNECTION_TIMED_OUT“

遇到错误 errno: 600001, errMsg: request:fail -118: net::ERR_CONNECTION_TIMED_OUT 通常是由于网络连接超时问题引起的。这意味着微信小程序在尝试连接到服务器时,未能在规定时间内完成连接。以下是一些可能的原因和解决方案:

1. 检查服务器状态

  • 服务器未响应:确保你的服务器正在正常运行,并且没有发生宕机或者重启。
  • 检查负载和性能:如果服务器的负载过高,可能会导致请求超时。检查服务器的 CPU 和内存使用情况。

2. 网络问题

  • 网络不稳定或慢:检查服务器和微信小程序之间的网络连接是否稳定。如果你使用的是云服务提供商,检查其服务是否正常。
  • 防火墙/安全组配置:确认服务器的防火墙或安全组规则没有阻止微信小程序的请求,特别是确保端口 80 (HTTP) 或 443 (HTTPS) 没有被阻塞。

3. 域名解析问题

  • DNS 配置错误:如果使用自定义域名,确认域名解析正常。可以尝试通过 nslookup 或 dig 等工具检查域名解析是否正常。
  • 域名解析缓存问题:有时 DNS 缓存可能会导致连接超时,尝试清理 DNS 缓存或者重新启动服务器来确保解析正常。

4. 小程序网络请求配置

  • 超时设置问题:检查小程序中的 wx.request 配置,确保设置的 timeout 参数合理(例如 5000ms)。如果超时时间过短,可能会导致请求未完成就被终止。
wx.request({
  url: 'https://your-api-endpoint',
  timeout: 5000,  // 5秒超时
  success(res) {
    console.log(res)
  },
  fail(err) {
    console.error(err)
  }
})

5. 代理服务器或负载均衡器问题

  • 如果你的请求经过代理或负载均衡器,确保这些组件的配置没有导致连接超时。检查负载均衡器的超时时间设置,确保它们合理。

6. 检查服务器日志

  • 查看服务器端的日志,检查是否有其他异常或错误,可能会有助于识别导致超时的原因。

7. 检查小程序和接口的兼容性

  • 确保小程序接口的请求方式和服务器支持的协议一致。如果小程序请求的是 HTTP,而服务器配置了 HTTPS,或者反之,可能会导致连接问题。

8. 调试工具和监控

  • 使用一些调试工具,如 Wireshark 或 Fiddler,捕捉请求和响应数据,查看请求是否到达服务器,是否有异常返回。
3、报error:600001,errMsg:"request:fail -2:net::ERR_FAILED"

分析:这个报错一般是IIS 部署免费 SSL 证书提示证书链中的一个或多个中间证书丢失

3.1、检查网站SSL证书

进入网站:SSL服务器证书安装检查器_OPENSSL工具包_迅通诚信

方法1:

输入网站后读取证书结果如下

3.2、生成证书
3.2.1、进入网站:下载DigiCert和GeoTrust中间证书_OPENSSL工具包_迅通诚信

3.2.2、点击下一步

到这里就已经生成了中间证书

3.2.3.手动合并证书

看看你的crt证书是不是分段的,如果只有一段,就说明你配置错了,例如下图

方法2:

1、进入网站:OpenSSL在线生成合成PEM文件_OPENSSL工具包_迅通诚信

选择PEM文件包括证书(CRT/CER)

2.将crt拷贝到输入框中点击合成PEM

最后重新配置SSL证书就好了。

方法3(腾讯云官方推荐):

现象描述

IIS Web 服务部署免费 SSL 证书时提示证书链中的一个或多个中间证书丢失,要解决此问题,请确保安装了所有中间证书

可能原因

中间证书缺失。

解决办法
步骤1:查看证书加密算法

登录腾讯云 SSL 证书控制台,查看您的证书加密算法类型。如下图所示:




步骤2:下载中间证书文件

根据您的证书加密算法类型下载中间证书至您的云服务器中。

RSA 加密算法类型:单击下载

ECC 加密算法类型:单击下载

步骤3:安装中间证书

1. 在您需要部署证书的服务器上,双击中间证书文件并在打开的窗口中单击安装证书。如下图所示:



2. 在证书导入向导中存储位置选择本地计算机,并单击下一页。如下图所示:



3. 证书存储选择将所有的证书都放入下列存储 > 中间证书颁发机构,并单击下一页。如下图所示:



4. 确认您安装的证书位置是否正确,并单击完成。如下图所示:



5. 显示导入成功即可完成设置,请再次尝试部署您的 SSL 证书。如下图所示:

感言

不管遇到什么困难,在日常开发中,一定不要自暴自弃,面对解决不了的问题可以多请教别人和百度,不要什么都闷在肚子里面,如果实在遇到瓶颈,可以离开办公桌去透透气,希望以上方法对各位小伙伴有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在努力的前端小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值