昨天项目服务器发生意外,其上的IIS服务无法使用,导致项目后台瘫痪,倒腾一番最终以无法修复告终,启用备用的服务器,从安装IIS环境开始,然后最后所有的东西都准备就绪,却发现微信小程序苹果设备上无法使用,而安卓设备可以正常,心累……
环境
服务器:Windows IIS。
原因
ios9之后,苹果要求所有的TLS(安全传输层协议)版本不低于1.2。
检查
- 方法一
如何查看自己服务器的TLS版本呢,windows服务器上可直接到注册表中查看1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\
下面如果有TLS 1.2
节点,表示安装了TLSv1.2。
- 方法二
利用SSL检测进行检测,输入你的域名或者ip,查看检测结果
解决方案
- 情况一:如果注册表中有TLS1.2
那么启动很简单,直接点击它的Client
和Server
,分别将右侧的Enable
设为1,记住,是设为1,注意两个都需要设为1。 - 情况二:如果注册表中没有TLS1.2
通常Windows服务器默认没有TLS1.2,此时需要自己安装,安装很简单,复制下面代码,保存到txt文件中,修改后缀名为.reg
,双击执行即可。如果有提示,则选择允许或者确定之类的就可以了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Windows 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即可。
- 最后一步,重启服务器,重启服务器,重启服务器,切记,重启服务器,重启服务器,重启服务器。
然后就可以看到下图了,心情真好,小程序也通了。
最后
生命不息,使劲造吧