需求:帮朋友做了一个小工具,主要目的是检查局域网(在线检查网站无法访问内网)的 https 站点配置的安全协议版本,方便给第三方提供接口文档,描述 https 站点所使用的安全协议。
相信大家在开发过程中,可能会遇到“The request was aborted: Could not create SSL/TLS secure channel”异常,异常原因可能是对方设置的安全协议版本过高,同时,自己程序默认配置的安全协议版本过低,然后无法正常通信导致。
SSL/TLS 协议
SSL全称是Secure Sockets Layer,安全套接字层,它是由网景公司(Netscape)设计的主要用于Web的安全传输协议,目的是为网络通信提供机密性、认证性及数据完整性保障。如今,SSL已经成为互联网保密通信的工业标准。
SSL最初的几个版本(SSL 1.0、SSL2.0、SSL 3.0)由网景公司设计和维护,从3.1版本开始,SSL协议由因特网工程任务小组(IETF)正式接管,并更名为TLS(Transport Layer Security),发展至今已有TLS 1.0、TLS1.1、TLS1.2这几个版本。目前主流的还是TLS1.2,不过TLS1.3即将是大势所趋。
Protocol | Published | Status |
SSL 1.0 | Unpublished | Unpublished |
SSL 2.0 | 1995 | Deprecated in 2011 (RFC 6176) |
SSL 3.0 | 1996 | Deprecated in 2015 (RFC 7568) |
TLS 1.0 | 1999 | Deprecated in 2020 (RFC 8996) |
TLS 1.1 | 2006 | Deprecated in 2020 (RFC 8996) |
TLS 1.2 | 2008 | |
TLS 1.3 | 2018 |
Https Check 工具
使用 .NET 开发了一个 Https 安全协议支持检测工具,其实就是将控制台应用发布到了 nuget 仓库,支持:netcoreapp3.1、net5.0、net6.0、net7.0。
GitHub 地址:https://github.com/itsvse/https-check
nuget 地址:https://www.nuget.org/packages/https-check
安装命令如下:
dotnet tool install --global https-check --version 1.0.0
使用命令如下:
https-check https://www.itsvse.com
非常的简单,命令就是包名+空格+网址。
(完)