昨天项目服务器发生意外,其上的IIS服务无法使用,导致项目后台瘫痪,倒腾一番最终以无法修复告终,启用备用的服务器,从安装IIS环境开始,然后最后所有的东西都准备就绪,却发现微信小程序苹果设备上无法使用,而安卓设备可以正常,心累……
环境
服务器:Windows IIS。
原因
ios9之后,苹果要求所有的TLS(安全传输层协议)版本不低于1.2。
检查
- 方法一 如何查看自己服务器的TLS版本呢,windows服务器上可直接到注册表中查看
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\
下面如果有TLS 1.2
节点,表示安装了TLSv1.2。
- 方法二 利用https://myssl.com/ats.html进行检测,输入你的域名或者ip,查看检测结果;
解决方案
- 情况一:如果注册表中有TLS1.2 那么启动很简单,直接点击它的
Client
和Server
,分别将右侧的Enable
设为1,记住,是设为1,注意两个都需要设为1。 - 情况二:如果注册表中没有TLS1.2 通常Windows服务器默认没有TLS1.2,此时需要自己安装,安装很简单,复制下面代码,保存到txt文件中,修改后缀名为
.reg
,双击执行即可。如果有提示,则选择允许或者确定之类的就可以了。
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]"DisabledByDefault"=dword:00000000"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]"DisabledByDefault"=dword:00000000"Enabled"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]"DisabledByDefault"=dword:00000000"Enabled"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]"DisabledByDefault"=dword:00000000"Enabled"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]"DisabledByDefault"=dword:00000000"Enabled"=dword:00000001
上面在新建的时候就已经赋值1了,不需要再去手动更改,如果需要关闭相应的版本,直接修改Enable值为0即可。
- 最后一步,重启服务器,重启服务器,重启服务器,切记,重启服务器,重启服务器,重启服务器。
然后就可以看到下图了,心情真好,小程序也通了。
最后
生命不息,使劲造吧