1. 背景
前些天访问一个https的链接,这个不安全的连接提示那是经常见,只要是自己的内部应用系统,大多数是这样。但平时点个【高级】,点个"继续前往 xxx.xxx.xxx.xxx(不安全)"的超链接就跳过去直接进去了。
但是这次,点了【高级】然后都没有下面"继续前往xxx.xxx.xxx.xxx(不安全)"的超链接。
2. 解决
直接在当前页面点击任何空白位置,然后输入 thisisunsafe,然后就跳过进去了
按照到处搜索的结果说的一句:告诉浏览器,这是一个不安全的连接。我真的不想说啥,这翻译过来不就是这句。想要了解为啥这么就ok了。
3.刨根问底
3.1 什么是说"您的连接不是私密连接"?
这个一般只有https的网址才会出现,http的网站是不会出现的。
这是为什么呢?
因为https是安全的访问连接,是在http基础上增加了SSL/TLS协议来进行加密和身份验证,确保传输过程的安全性。当不符合安全规则的时候就会判定是不安全的私密连接。
判断的安全规则包括:
1.过期的SSL证书:SSL证书有一个有效期
2.无效的证书链:当客户端无法验证服务器的证书链
(可能是由于证书颁发机构的根证书未被正确导入到客户端,或者证书链中的某个证书被吊销或无效)
3.使用了自签名证书:自签名证书不被大多数浏览器信任
4.配置错误:例如,服务器未正确配置SSL证书,或者使用了不正确的加密套件等
是不是这里面信息量有点大,这都一个一个的是啥?不慌,下面开始扫盲 ↓↓↓↓↓
3.2 https 和 http的区别?
- 协议层:HTTP直接和TCP通信,而HTTPS则先通过SSL/TLS协议来加密数据和验证身份,然后再与TCP通信。
- 安全性:HTTP本身不提供加密和身份验证机制,而HTTPS提供了数据加密和身份验证,确保数据的机密性和完整性,以及通信双方的身份验证。
- 端口号:HTTP通常使用80端口,而HTTPS则使用443端口。
3.3 SSL/TLS协议是什么,跟熟知的http/https协议,TCP/IP协议,有啥关系,都叫协议?
这个协议这东西,简单来说就是定义一套规则:协议 == 规则
上面的 HTTP、HTTPS、TCP、UDP以及SSL/TLS协议都是TCP/IP协议簇的组成部分!
TCP/IP协议簇是一个庞大的协议族,包括了众多用于 网络通信的协议。
所以转回来,上面提到的这写协议(规则),都是为了网络上的数据传输,数据通信制定的规则,不同的规则解决不同的问题,重点也不同。
- http实现超链接资源访问
- https在http的基础上,对传输数据进行了加密,http传输的数据都是明文的,网络拦截后是可以解析出来的,而https的数据传输是密文的,网络拦截了,如果没有秘钥/公钥是没法解析内容的
- SSL/TLS是一套安全加密的协议,主要完成加解密。
从 OSI(Open Systems Interconnection)七层模型 上讲,SSL/TLS协议是传输层-应用层之间,但又不完全数属于某一层:
1.应用层:为用户的应用进程提供网络通信服务,如DNS协议、 HTTP协议、SMTP协议等。
2.表示层:将抽象语法转化为适合OSI系统内部使用的传送语法,提供格式化的表示和转换数据服务,数据的压缩、解压缩、 加密和解密 等工作都由表示层负责。
3.会话层:通过会话管理网络连接,完成通信进程的逻辑名字与物理名字间的对应,提供 会话 管理服务。
4.传输层:负责数据从发送端 传输 到接收端,协议包括 UDP协议、TCP协议 等。
5.网络层:在复杂的网络环境下确定一个合适的路径,协议包括IP协议。
6.数据链路层:将网络层交下来的数据报封装成帧,在同一种数据链路节点的两个设备之间传输,协议包括MTU协议、ARP协议等。
7.物理层:实现相邻计算机节点之间的比特流的透明传输,尽可能屏蔽掉具体传输介质的差异。
在实际网络分析和开发中,抓包工具如 Sniffmaster 可以帮助解密和检查 HTTPS 流量,它支持全平台抓包,包括 HTTPS、TCP 和 UDP 协议,无需设置代理或越狱即可进行流量分析,便于开发人员调试 SSL/TLS 握手和证书验证过程。
3.4.什么是SSL证书?
SSL证书是一种数字证书,用于验证服务器身份并提供数据加密功能。
SSL证书由受信任的证书颁发机构(CA)颁发,其中包含:
CA:相当于工商局,颁发的证书就像工商局发放了营业执照,公认的一个合法的网站(合法的商企)
- 服务器的公钥、
- 证书持有者的信息、
- 证书颁发机构的签名等内容。
当客户端连接到服务器时,服务器会向客户端提供SSL证书,并使用公钥对客户端进行身份验证。
客户端会验证服务器的证书是否由受信任的CA颁发,并使用服务器提供的公钥对数据进行加密。
4. 正向解决
一般来说分两类
- 搞一个由证书颁发机构(CA)颁发的合法证书,类似于注册一个合法的域名,那各大浏览器就能找到。
- 在自己浏览器搞:自行确认这个证书的安全性,直接告诉浏览器
4.1 浏览器操作
4.1.1 继续前往 xxx.xxx.xxx.xxx(不安全)
最常规的就是点击【高级】,点击"继续前往 xxx.xxx.xxx.xxx(不安全)"的超链接
4.1.2 输入指令: thisisunsafe
4.1.3 添加信任证书
-
导出证书
-
导入证书
选择前面导出的crt文件
一直下一步,这里选择一个自动选择存储。
导入成功后,找一下导入后的证书,名称一般和导出的文件名一致,如果导出的时候没有改名的话。
可能在个人,可能在某个页签下,要仔细找。或者不用找,直接重新访问前面的https的网站,就会发现不会提示"您的连接不是私密连接"了