关于TLS 1.2注册表项中Client与Server子项的疑问
关于TLS 1.2注册表项中Client与Server子项的疑问
嘿,我来帮你把这个TLS注册表的事儿讲明白!
首先得明确HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2下面的两个子项各自的作用:
- Client子项:这个是管你的机器(或者上面的应用)当「客户端」时的TLS 1.2配置。比如你的App要去调用外部的HTTPS接口、连接其他TLS加密的服务器,这时候就会读取这个子项里的设置——比如是否启用TLS 1.2作为客户端协议,能用哪些加密套件,会话缓存怎么处理等等,简单说就是“你主动连别人”时的规则。
- Server子项:这个则是管你的机器(或者服务程序)当「服务器」时的TLS 1.2配置。比如你的App要对外提供HTTPS服务,接受其他客户端的连接,这时候系统就会用这个子项里的设置来决定是否允许用TLS 1.2建立连接,支持哪些加密套件之类的,也就是“别人连你”时的规则。
再来说你的第二个问题:如果你的应用只需要TLS 1.2,但目前只有Client子项存在,能不能正常用得看你的App扮演的角色:
- 如果你的App只是作为客户端(比如只需要发起TLS连接去访问外部服务),那完全没问题!因为它只会用到客户端模式下的TLS 1.2配置,Server子项有没有都不影响它的功能。
- 但如果你的App需要作为服务器端(比如要对外提供TLS加密的服务),那只有Client子项就不行了——这时候系统没有针对服务器角色启用TLS 1.2的配置,外部客户端连过来时大概率没法通过TLS 1.2建立连接,会出现握手失败之类的问题。
备注:内容来源于stack exchange,提问作者NImIPKZvUc. dev
相关产品推荐
相关产品推荐

