SSL证书和TLS网络传输数据时提供加密和身份验证的协议
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 是在网络上传输数据时提供加密和身份验证的协议。TLS 实际上是 SSL 的升级版,它修复了早期 SSL 的安全漏洞,使通信更加高效和安全。目前,所有版本的 SSL 已被弃用,TLS 已成为主流协议。例如,SSL2.0 发布于 1995 年,2011 年弃用;SSL3.0 发布于 1996 年,2015 年弃用;TLS1.2 发布于 2008 年,TLS1.3 发布于 2018 年。现代互联网中几乎所有 HTTPS 连接都使用 TLS(常见版本为 TLS1.2、TLS1.3),而旧的 SSL 协议已不再推荐使用。 在 TLS 中,当客户端(如浏览器)访问服务器时,会先进行“TLS 握手”来协商密钥。上图示意了完整的 TLS 1.2 握手流程:客户端首先发送 ClientHello,服务器返回 ServerHello 并发送证书,双方交换密钥材料并完成握手。握手完成后,客户端和服务器使用协商好的对称密钥加密后续的数据,从而保证通信的机密性和完整性。 TLS 与 DTLS 的区别和使用场景 传输层协议不同:TLS 基于 TCP(面向连接、可靠传输),而 DTLS (Datagram TLS) 基于 UDP(无连接、不可靠)握手延迟与丢包处理:由于省略了 TCP 三次握手,DTLS 握手延迟更低,但需要自身处理重传和乱序;而 TLS 在可靠的 TCP 上运行,不需额外处理丢包。 适用场景:TLS 适用于需要可靠通信的场景,如 HTTPS 网站、API 加密、电子邮件(SMTP over TLS)、VPN(如 OpenVPN 的 TLS 模式)、FTPS、数据库加密等。DTLS 则适用于对延迟敏感或丢包率较高的场景,如实时音视频传输(VoIP、WebRTC)、在线会议、多人游戏、物联网设备通信(如 CoAP over DTLS)等 示例:WebRTC 的 SRTP 通常使用 DTLS over UDP 来加密媒体流,而大多数浏览器访问网站仍采用 TLS over TCP(HTTPS)来保证稳定性和可靠性 SSL/TLS 证书类型及使用场景 自签名证书 (Self-Signed):由自己生成并签署,没有受信任的 CA 机构背书,因此不被公用浏览器自动信任。优点是生成简单、成本低(免费),常用于开发测试、内网服务或设备间通信(如 Kubernetes、私有内部网站、路由器管理后台、企业 IoT 设备等场景)。缺点是浏览器会弹出安全警告,不适用于面向普通用户的公网服务。 DV (域名型)证书:仅验证域名所有权(Domain Validation)。CA 会检查申请者是否拥有该域名控制权,但不验证组织身份。DV 证书可以为网站提供传输加密,但地址栏和证书中不显示公司信息。特点是申请审核快速(通常几分钟到数小时内签发)。常见于个人博客、小微网站和测试环境。 OV (企业型)证书:在 DV 的基础上,CA 还会验证申请企业或组织的合法身份。OV 证书中会显示组织名称等信息,浏览器地址栏不显示绿色公司名,但证书详情里有企业信息。适用于企业官网或业务网站,需要让用户看到一定的身份信息,安全级别中等。 EV (增强型)证书:需要最严格的验证流程,包括企业注册信息、法人证明等,颁发时审核最严格。安装有 EV 证书的网站,在历史上浏览器地址栏会显示公司名称(曾以绿色栏或公司名突出显示,当前一些浏览器已简化显示但仍标识可信度)。EV 证书提供最高级别的用户信任度,常用于金融、电商、银行等对身份可信度要求极高的场景。 三者对比时,可记住:自签名非公信,DV 只保密不验身,OV 验证企业信息,EV 验证最严且展示企业名称。 在 Nginx 与 Apache2 中加载证书的区别 不同 Web 服务器配置 SSL/TLS 证书的方式略有差异: Apache (mod_ssl):通常在 <VirtualHost *:443> 块内启用 SSLEngine on,并使用 SSLCertificateFile 指定服务器证书(.crt 或 .pem),SSLCertificateKeyFile 指定私钥文件,若有中间 CA 证书则用 SSLCertificateChainFile 指定。Apache 需要分开配置主证书、私钥和链证书。
Nginx:在 server 块内使用 listen 443 ssl; 并配置 ssl_certificate 指向包含服务器证书和中间证书链的文件(例如 fullchain.pem),ssl_certificate_key 指向私钥。Nginx 会将证书和链文件合并后使用,无需单独配置 chain 文件。
使用命令行生成自签名证书 可通过 OpenSSL 等工具在命令行快速生成自签名证书。基本流程如下:
阅读原文:原文链接 该文章在 2025/8/15 12:33:18 编辑过 |
关键字查询
相关文章
正在查询... |