HTTPS面试题(更新中...)
问题 1:HTTP 和 HTTPS 的区别。
HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)都是用于浏览器与服务器之间通信的协议。二者的关键区别在于安全性。HTTP 以明文形式传输数据,容易被窃听或篡改,而 HTTPS 使用传输层安全协议(TLS,前身为安全套接层 SSL)对数据进行加密。
问题 2:什么是 SSL/TLS?
SSL/TLS(安全套接层/传输层安全)是一种为网络通信提供安全保障的协议,本质上是对浏览器与服务器之间交换的数据进行加密。HTTPS 中的“S”就源自于此。HTTP(超文本传输协议)是用于在 Web 上传输数据的基础协议,明文传输,易被窃听或篡改,SSL/TLS 增加了加密和身份认证层,确保只有目标接收者才能访问数据。
问题 3:建立 HTTPS 连接的过程(TLS 握手)。
建立 HTTPS 连接需要经过 TLS(传输层安全)握手过程,这是一个确保安全通信的复杂流程。简要步骤如下:
-
Client Hello:客户端发起连接,发送支持的 TLS 版本和加密套件列表。
-
Server Hello:服务器响应,选择双方都支持的 TLS 版本和加密套件,并发送其数字证书。
-
证书验证:客户端验证服务器证书的有效性,并确认其由受信任的证书颁发机构(CA)签发。
-
密钥交换:客户端和服务器生成一个共享密钥,用于后续通信的加密。通常通过密钥交换算法实现。
-
Change Cipher Spec:双方通知对方切换到加密通信模式。
-
加密数据交换:之后的所有通信均使用共享密钥加密。
TLS 握手通过验证服务器身份并建立安全通道,确保数据传输安全。证书验证步骤是防止客户端连接到假冒服务器的关键。
问题 4:解释证书在 HTTPS 中的作用
在 HTTPS 中,证书相当于网站的“数字身份证”,向浏览器确认网站的身份,确保正在通信的是目标服务器。证书由受信任的证书颁发机构(CA)签发,如 Let’s Encrypt 或 DigiCert,包含网站的公钥,用于加密浏览器与服务器之间的通信。
当访问 HTTPS 安全网站时,浏览器会验证证书的有效性,包括检查 CA 的签名和证书是否过期。如果一切正常,浏览器会显示锁形图标,表示连接安全。如果证书无效或缺失,浏览器通常会发出警告,提示潜在安全风险。这是防止“中间人攻击”的关键措施,避免攻击者截取浏览器与服务器之间的通信,窃取敏感数据。
问题 5:使用 HTTPS 有哪些好处?
- 数据加密:HTTPS 对浏览器与服务器之间传输的所有数据进行加密,有效保护密码、信用卡信息和个人数据等敏感信息,防止被窃听。
- 数据完整性:HTTPS 确保数据在传输过程中不被篡改。
- 身份认证:HTTPS 验证网站身份,防止钓鱼攻击(攻击者伪造合法网站窃取用户凭证)。
- 提升搜索引擎优化(SEO):部分搜索引擎优先收录 HTTPS 网站,并给予更高的搜索排名。