微信小程序部署问题总结
程序员文章站
2022-04-06 10:55:59
1、微信小程序免费SSL证书Https 申请(阿里云申请) 进入阿里云控制台后,选择 选择 但是阿里云的免费SSL证书藏得比较深,得这样操作才能显示出免费证书 点击 点击 点击 支付即可 步骤1: 步骤2: 步骤3: 步骤4: 步骤5: 进入证书控制台 补全证书信息,由于是免费证书,因此只能填写一个 ......
1、微信小程序免费SSL证书Https 申请(阿里云申请)
服务器:Windows 2008 Server、IIS7
Windows 服务器默认没有启用支持TLS 1.2及以上版本。
首先:开始->运行->PowerShell
然后:复制一下命令在PowerShell中执行完成后,直接回车即可。
在IIS上部署一个可以接受文件上传的Post WebApi,使用Http验证时没有任何问题,使用SSL后;通过微信小程序Post文件流,就会导致异常:未显示页面 因为请求实体过大的413 错误;但是在 Chrome 内核的微信小程序编辑工具中,则不存在该问题。 问题原因
客户端发起一个请求后,IIS会收到足以解析请求标头的数据,但不会收到整个请求实体正文,如果发现需要客户端证书时,将尝试重新协商连接;但此时客户端正等待向IIS发送请求中的其余数据。因此,如果让客户端能接受重新协商,则必须使用SSL预加载功能预加载请求实体正文,此时则可能引起默认设置值UploadReadAheadSize长度太小的问题。
进入阿里云控制台后,选择CA证书服务
选择购买证书
但是阿里云的免费SSL证书藏得比较深,得这样操作才能显示出免费证书
点击Symantec->点击增强型OV SSL->点击免费型DV SSL->支付即可
步骤1:
步骤2:
步骤3:
步骤4:
步骤5:
补全证书信息,由于是免费证书,因此只能填写一个域名,而且无法使用通配符
步骤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 // 根据需要调整大小;
上一篇: Nuxt 2 即将来临