今天在Windows Admin Center里试图安装扩展插件的时候遇到一个问题。在可用插件里没有任何显示,包括各种微软自己开发的插件。

在Feeds里删除默认的链接,重新添加的时候也会遇到报错。说这不是一个有效的NuGet Feed。

经过检查,在其它WAC的配置中,这里也是同样的默认配置,是可以列出可用的扩展的。接着,就是要验证一下是否这个地址真的有问题,无法访问。在安装WAC的服务器上,访问一下这个地址https://aka.ms/sme-extension-catalog-feed 结果遇到一个TLS的报错。

这个好解决。启用这个服务器上对TLS1.2的支持就可以了。就是一些注册表键值。这个网上有很多文章。具体就是在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client

下面新建两个RED_DWORD的键值DisabledByDefault和Enabled。https://www.cnblogs.com/qishine/p/16700672.html

另外,IE选项里的高级设置里需要把TLS1.2也启用。重启系统后可以再试一下访问。因为TLS协议设置必须重启生效。

同时,也顺便增加Powershell使用TLS 1.2的访问,因为默认是不带的。 以前的文章里提到过,用一条命令就可以了。

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

重启后,发现问题依旧。这时候,再用Firefox试了一下,发现这个地址是可以打开的。

那么,现在问题就很明确了,问题出在IE这里。系统本身无法访问肯定和IE的表现一样。既然都按照要求配置了TLS1.2,那么到底哪里出问题了呢?这时候用之前文章里提到过的ssllabs网站,检测一下这个网站支持的协议。

可以看到,支持TLS 1.2和1.3。不过我的Windows 2016服务器,不支持TLS 1.3的。所以现在问题来了,TLS 1.2究竟启用成功了吗?这个需要验证一下。于是,只能先抓包看一下了。

可以看到,确实是用到了TLS 1.2但是,随后这个链接就被服务器reset了,导致无法连接。接下去需要比对一下正常情况时的包。

可以看到正常的情况下,在Client Hello之后,会有Server Hello的回包。这里首先确定也是TLS 1.2协议。但是为什么同样的协议IE和Firefox表现会不同呢?再仔细看Server Hello的回包,里面显示了使用的加密算法TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。这个对比前面IE的Client Hello里提到的20种加密算法,仔细查看是确实没有的。所以,思路来到怎么增加这种加密算法呢?

经过查找,微软在Windows 2016的时候引入了TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。具体可以看这篇官方文章https://docs.microsoft.com/en-us/windows-server/security/tls/tls-schannel-ssp-changes-in-windows-10-and-windows-server

也就是说不可能是因为系统版本过低导致的问题。而且Firefox也确实使用了这个加密算法。要启用这种算法,或者说调整算法的优先级,可以通过组策略。具体位置是Computer Settings--Administrative Templates--Network--SSL Configuration Settings中的SSL Cipher Suite Order。这个策略默认是不启用的。

找打它,启用后会发现我们需要TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384是包含在里面的。然后gpupdate /force,我这里又重启了一下服务器。

重新启动后,问题解决。

其实仔细看之前的IE报错,它提到了是使用了不支持的协议或者加密算法比如RC4。今天的问题就是加密算法不支持,服务器和客户端没有协商通过。

但是仔细看了一下ssllabs的检查也包含了加密算法。

仔细看,这里TLS 1.2支持的强加密算法只有3种。IE试图使用的20种算法里有不少是受支持的弱加密算法,比如0x28, 0x27, 0x14等。但是很奇怪不知道为什么服务器不使用就直接重置了链接,或许是微软服务器的安全性特别高吧。还有就是尽量用最新的系统,比如Windows server 2022,就能支持TLS 1.3更安全也能避免很多问题了。

Windows服务器TLS协议的更多相关文章

  1. 在Windows服务器上启用TLS 1.2及TLS 1.2基本原理

    在Windows服务器上启用TLS 1.2及TLS 1.2基本原理 在Windows服务器上启用TLS 1.2及TLS 1.2基本原理 最近由于Chrome40不再支持SSL 3.0了,GOOGLE认 ...

  2. ubuntu客户端使用RDP协议连接windows服务器

    如果服务器是linux或unix,可以使用ssh远程连接服务器.也有服务器是windows的,通常使用RDP协议进行连接. 1  环境 客户端:ubuntu14.04 LST 服务器:windows ...

  3. Windows IIS 服务器配置HTTPS启用TLS协议。

    好消息, 程序员专用早餐机.和掌柜说 ideaam,可以节省20元. 点击链接   或復·制这段描述¥k3MbbVKccMU¥后到淘♂寳♀ Windows IIS 服务器配置HTTPS启用TLS协议. ...

  4. 协议森林17 我和你的悄悄话 (SSL/TLS协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的 ...

  5. 浅谈HTTPS和SSL/TLS协议的背景和基础

    相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...

  6. SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  7. 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

    来自:编程随想   >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...

  8. SSL/TLS协议运行机制

      转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...

  9. 【转】SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

随机推荐

  1. 记一次 .NET 差旅管理后台 CPU 爆高分析

    一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的 web 系统 cpu 运行一段时候后就爆高了,让我帮忙看一下是怎么回事,那就看吧,声明一下,我看 dump 是免费的,主要是锤炼自己技术 ...

  2. go-zero微服务实战系列(九、极致优化秒杀性能)

    上一篇文章中引入了消息队列对秒杀流量做削峰的处理,我们使用的是Kafka,看起来似乎工作的不错,但其实还是有很多隐患存在,如果这些隐患不优化处理掉,那么秒杀抢购活动开始后可能会出现消息堆积.消费延迟. ...

  3. string的底层实现

    String底层实现 string在C++也是一个重要的知识,但是想要用好它,就要知道它的底层是如何写的,才能更好的用好这个string,那么这次就来实现string的底层,但是string的接口功能 ...

  4. labview入门到出家11(补充)——基于单片机和labview开发的虚拟示波器

    ​ 之前有小伙伴提到需要虚拟示波器的资料,有些库还有文件丢失了,直接给的工程跑不起来,这里我把关键的地方讲解一下,大家可以自行开发.其实开发不难,只是有些点会耗点时间.虚拟示波器,顾名思义就是非实物的 ...

  5. dos命令-*02

    1.cmd状态下 tab快速补充文件名 ↑↓快速填充之前输入的文件名 2.//这是Java的快速入门 //对代码的相关说明 //1.public class Hello 表示Hello是一个类,是一个 ...

  6. 【Python3】列表字典集合元组

    1 列表 1.1 定义与索引 在Python中,第一个列表元素的下标为 0通过将索引指定为 -1 可以让Python返回最后一个列表元素 inventory = ['sword', 'armor', ...

  7. SpringBoot使用CORS的addCorsMappings中会遇到的问题

    跨域需要后端需要设置响应的跨域头 如下 public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/ ...

  8. 关于 CMS 垃圾回收器,你真的懂了吗?

    大家好,我是树哥. 前段时间有个小伙伴去面试,被问到了 CMS 垃圾回收器的详细内容,没答出来.实际上,CMS 垃圾回收器是回收器历史上很重要的一个节点,其开启了 GC 回收器关注 GC 停顿时间的历 ...

  9. 什么是WordPress

    首先,假设您没有WordPress的经验: 我将从基础开始. 在本教程中,我将回答问题:"什么是WordPress?" 在这篇文章中,我将说明您可以在哪里获得WordPress以及 ...

  10. MPI简谈

    MPI简谈 MPI是分布式内存系统,区别于OpenMP和Pthreads的共享内存系统.MPI是一种基于消息传递的并行编程技术,是如今最为广泛的并行程序开发方法. MPI前世今生 MPI(Messag ...