微信小程序部署问题总结
1、微信小程序免费SSL证书Https 申请(阿里云申请)
-
进入阿里云控制台后,选择
CA证书服务
-
选择
购买证书
但是阿里云的免费SSL证书藏得比较深,得这样操作才能显示出免费证书
点击Symantec
->点击增强型OV SSL
->点击免费型DV SSL
->支付即可
步骤1:
步骤2:
步骤3:
步骤4:
步骤5:
- 进入证书控制台
补全证书信息,由于是免费证书,因此只能填写一个域名,而且无法使用通配符
步骤1:填写域名
步骤2:补全信息
2、小程序要求的 TLS 版本必须大于等于1.2
-
问题环境
服务器:Windows 2008 Server、IIS7 -
问题描述
微信小程序使用wx.request
时,调试报错:小程序要求的TLS版本必须大于等于1.2.
-
问题原因
Windows 服务器默认没有启用支持TLS 1.2及以上版本。 -
前提
Windows 系统 TLS 支持情况
备注:如果操作系统不支持相应TLS则无法使用以下解决方案
也可以通过该网址判断是否已支持TLS
https://www.ssllabs.com/ssltest/index.html
通过以下内容可判断是否已支持相应TLS
- 解决方案
首先:开始->运行->PowerShell
然后:复制一下命令在PowerShell
中执行完成后,直接回车即可。
# Enables TLS 1.2 on windows Server 2008 R2 and Windows 7
# These keys do not exist so they need to be created prior to setting values.
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2"
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server"
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"
# Enable TLS 1.2 for client and server SCHANNEL communications
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
# Disable SSL 2.0 (PCI Compliance)
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"
# Enables TLS 1.2 on Windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values. md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" # Enable TLS 1.2 for client and server SCHANNEL communications new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord" # Disable SSL 2.0 (PCI Compliance) md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"
最后:重启服务器(必须步骤)后就可以了,再进行wx.request
请求
3、未显示页面,因为请求实体过大
- 问题描述
在IIS上部署一个可以接受文件上传的Post WebApi,使用Http
验证时没有任何问题,使用SSL
后;通过微信小程序Post文件流,就会导致异常:未显示页面 因为请求实体过大
的413 错误;但是在 Chrome 内核的微信小程序编辑工具中,则不存在该问题。 - 问题原因
客户端发起一个请求后,IIS会收到足以解析请求标头的数据,但不会收到整个请求实体正文,如果发现需要客户端证书时,将尝试重新协商连接;但此时客户端正等待向IIS发送请求中的其余数据。因此,如果让客户端能接受重新协商,则必须使用SSL预加载功能预加载请求实体正文,此时则可能引起默认设置值UploadReadAheadSize
长度太小的问题。 - 解决方案
进入cd C:\Windows\System32\Inetsrv
目录执行命令行
appcmd.exe list config -section:system.webServer/serverRuntime // 查看当前设置的 UploadReadAheadSize 大小(byte)
appcmd.exe set config -section:system.webServer/serverruntime /uploadreadaheadsize:204800 /commit:apphost // 根据需要调整大小;