微信小程序部署问题总结

1、微信小程序免费SSL证书Https 申请(阿里云申请)

  • 进入阿里云控制台后,选择CA证书服务
    微信小程序部署问题总结_第1张图片

  • 选择购买证书
    534030-20180105155240065-1704026719.png

但是阿里云的免费SSL证书藏得比较深,得这样操作才能显示出免费证书
点击Symantec->点击增强型OV SSL->点击免费型DV SSL->支付即可
步骤1:
微信小程序部署问题总结_第2张图片

步骤2:
微信小程序部署问题总结_第3张图片

步骤3:
微信小程序部署问题总结_第4张图片

步骤4:
微信小程序部署问题总结_第5张图片

步骤5:
微信小程序部署问题总结_第6张图片

  • 进入证书控制台
    534030-20180105155322690-711155190.png

补全证书信息,由于是免费证书,因此只能填写一个域名,而且无法使用通配符
步骤1:填写域名
微信小程序部署问题总结_第7张图片

步骤2:补全信息
微信小程序部署问题总结_第8张图片

2、小程序要求的 TLS 版本必须大于等于1.2

  • 问题环境
    服务器:Windows 2008 Server、IIS7
  • 问题描述
    微信小程序使用wx.request时,调试报错:小程序要求的TLS版本必须大于等于1.2.
    534030-20180105155345690-1663427594.png

  • 问题原因
    Windows 服务器默认没有启用支持TLS 1.2及以上版本。
  • 前提
    Windows 系统 TLS 支持情况
    微信小程序部署问题总结_第9张图片

备注:如果操作系统不支持相应TLS则无法使用以下解决方案
也可以通过该网址判断是否已支持TLS
https://www.ssllabs.com/ssltest/index.html
通过以下内容可判断是否已支持相应TLS
微信小程序部署问题总结_第10张图片

  • 解决方案
    首先:开始->运行->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   // 根据需要调整大小;

转载于:https://www.cnblogs.com/jianxuanbing/p/8205042.html

你可能感兴趣的:(微信小程序部署问题总结)