详解互联网基石之HTTPS

2024-06-22 15:36
文章标签 https 详解 基石 互联网

本文主要是介绍详解互联网基石之HTTPS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

58a083f5cd513dca6e8367cb783f5293.png

一、HTTPS简介

HTTPS(HyperText Transfer Protocol Secure)是一种用于安全通信的网络传输协议。它是HTTP的加密版本,通过使用TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)来加密通信内容。

主要特点包括:
  1. 数据加密:HTTPS使用加密算法对通信内容进行加密,这样即使被拦截,也无法轻易解读其中的信息。

  2. 身份验证:HTTPS确保通信的两端(客户端和服务器)是可信的,这通过数字证书来实现。服务器必须拥有有效的证书,以证明其身份。

  3. 数据完整性:通过消息认证码(MAC)或哈希函数,HTTPS可以防止通信被篡改。接收方可以验证收到的数据是否与发送方发送的数据完全一致。

  4. SEO优化:搜索引擎如Google已将HTTPS加密作为搜索排名的一个重要因素,鼓励网站采用HTTPS以提升安全性和信任度。

使用HTTPS可以有效防止很多网络攻击,如中间人攻击、数据窃听和数据篡改。现今,大多数网站已经采用HTTPS来保护用户数据和隐私,使得互联网上的信息传输更为安全可靠。

二、HTTPS发展历史

HTTPS的发展历史可以追溯到早期互联网对安全需求的不断增长。以下是HTTPS从诞生到现今的关键发展历程:

1. 早期背景

1990年代初期:安全需求的出现
  • 随着互联网的普及,尤其是电子商务和在线支付系统的兴起,对数据传输的安全性需求日益增长。

  • HTTP(Hypertext Transfer Protocol)作为基础的网络通信协议,没有提供数据加密和身份验证机制。

2. SSL协议的诞生

1994年:Netscape引入SSL 1.0
  • Netscape Communications开发了SSL(Secure Sockets Layer)协议,用于加密和保护互联网通信。

  • SSL 1.0从未公开发布,因为它存在严重的安全漏洞。

1995年:SSL 2.0发布
  • Netscape发布了SSL 2.0,这是第一个公开使用的版本,但仍然存在一些安全缺陷。

1996年:SSL 3.0发布
  • SSL 3.0对之前版本进行了重大改进,修复了许多安全漏洞,成为广泛采用的标准。

3. TLS协议的演变

1999年:TLS 1.0发布
  • IETF(Internet Engineering Task Force)基于SSL 3.0开发并发布了TLS(Transport Layer Security)1.0。

  • TLS 1.0包含了更强的加密算法和改进的安全特性。

2006年:TLS 1.1发布
  • 增强了抗密码攻击的能力,改进了数据完整性检查机制。

2008年:TLS 1.2发布
  • 引入了新的哈希函数和加密算法,使协议更安全、更高效。

2018年:TLS 1.3发布
  • 大幅改进了握手过程,减少了延迟,进一步提高了安全性和性能。

4. HTTPS的普及

2000年代:逐步采用
  • 大多数大型网站逐步采用HTTPS保护用户数据,特别是涉及金融和个人隐私信息的网站。

2010年代:广泛推广
  • 电子商务、社交媒体和云服务的大量普及,推动了HTTPS的广泛采用。

  • Google、Mozilla等浏览器开发商开始推动HTTPS的使用,通过标记HTTP网站为“不安全”来鼓励网站向HTTPS迁移。

2014年:Let's Encrypt成立
  • Let's Encrypt是一个免费、自动化、开放的证书颁发机构,极大地降低了获取和部署SSL/TLS证书的门槛。

  • 大幅推动了HTTPS的普及,使得越来越多的网站能够采用加密通信。

2017年:浏览器强制HTTPS
  • Chrome、Firefox等主要浏览器开始对未采用HTTPS的网站显示“不安全”警告,进一步推动了网站向HTTPS迁移。

5. 未来展望

  • 随着对互联网安全需求的不断增加,HTTPS将继续演变和发展。

  • 未来可能会引入更多先进的加密技术和安全机制,进一步提升数据传输的安全性和效率。

关键时间线概述

  1. 1994年 - Netscape引入SSL 1.0(未公开发布)。

  2. 1995年 - SSL 2.0发布。

  3. 1996年 - SSL 3.0发布。

  4. 1999年 - TLS 1.0发布。

  5. 2006年 - TLS 1.1发布。

  6. 2008年 - TLS 1.2发布。

  7. 2014年 - Let's Encrypt成立。

  8. 2018年 - TLS 1.3发布。

通过这些关键节点,HTTPS从一个初步的安全协议发展成为现代互联网通信的基石,保障了数十亿用户的数据安全和隐私。

三、HTTPS通信流程

以下下将通过图形和文字详细描述HTTPS通信过程。图形部分将在解释文字后附上。

1. 客户端发起HTTPS请求
  • 用户在浏览器中输入URL(例如:https://example.com)。

  • 浏览器向目标服务器发出HTTPS连接请求。

2. 服务器响应并发送证书
  • 服务器接收到请求后,将包含公钥的数字证书发送给客户端。

  • 数字证书由可信的证书颁发机构(CA)签名,并包含服务器的公钥、证书颁发者的信息及有效期等。

3. 客户端验证证书
  • 客户端使用内置的受信任证书颁发机构列表,验证服务器的数字证书。

  • 验证过程包括检查证书的签名、证书链、有效期等。

  • 如果证书有效且可信,继续进行后续步骤;否则,客户端会警告用户,提示可能存在安全风险。

4. 生成对称密钥并加密传输
  • 客户端生成一个随机的对称密钥(会话密钥)。

  • 使用服务器的公钥加密该会话密钥,并将其发送给服务器。

5. 服务器解密会话密钥
  • 服务器使用自己的私钥解密会话密钥。

  • 双方使用该对称密钥进行后续的数据加密传输。

6. 加密通信
  • 双方使用协商好的对称密钥对后续的数据进行加密传输,确保数据的保密性和完整性。

  • 在加密连接建立后,浏览器和服务器之间的通信都是加密的。

7. 数据传输和会话结束
  • 在加密连接下,客户端和服务器进行安全的数据传输。

  • 当通信结束后,双方可以终止加密会话,关闭连接。

图形表示

1. 客户端请求HTTPS连接
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||   HTTPS Request                                           ||---------------------------------------------------------->||                                                           |2. 服务器响应并发送证书
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||<----------------------------------------------------------||  Server Certificate                                        ||                                                           |3. 客户端验证证书
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||  Verify Certificate                                       ||---------------------------------------------------------->||                                                           |4. 生成对称密钥并加密传输
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||  Generate Session Key                                     ||  Encrypt with Server's Public Key                         ||                                                           ||<----------------------------------------------------------||  Encrypted Session Key                                     ||                                                           |5. 服务器解密会话密钥
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||  Decrypt Session Key                                      ||                                                           ||---------------------------------------------------------->||                                                           |6. 加密通信
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||  Secure Communication                                     ||  (Encrypted Data)                                         ||<--------------------------------------------------------->||                                                           |7. 数据传输和会话结束
+----------------+                                          +------------------+
|  Client        |                                          |  Server          |
|  (Browser)     |                                          |  (Website)       |
+----------------+                                          +------------------+|                                                           ||  End Session                                              ||                                                           ||---------------------------------------------------------->||                                                           |

通过这个过程,HTTPS确保了客户端和服务器之间的通信是加密的、安全的,并且验证了服务器的身份,防止中间人攻击和数据窃取。

四、https证书免费申请方式汇总

有几种方法可以免费申请HTTPS证书,以下是一些最受欢迎和常用的免费证书颁发机构(CA)和平台:

1. Let's Encrypt

简介

Let's Encrypt 是一个提供免费 SSL/TLS 证书的证书颁发机构。它通过自动化的方式使得网站能够轻松获得和更新证书。

特点
  • 免费:完全免费使用。

  • 自动化:支持自动化工具(如Certbot)来申请、安装和续期证书。

  • 广泛支持:被大多数浏览器和操作系统信任。

  • 社区支持:拥有庞大的用户社区和丰富的文档资源。

申请步骤
  1. 安装 Certbot:Certbot 是一个广泛使用的自动化工具,用于与 Let's Encrypt 通信并处理证书的申请和安装。

  2. 运行 Certbot:通过运行适当的 Certbot 命令来申请证书,Certbot 会自动完成验证过程并安装证书。

  3. 设置自动续期:Certbot 可以自动安排任务来定期检查并续期证书,确保网站始终使用有效的证书。

2. ZeroSSL

简介

ZeroSSL 提供免费和付费的 SSL 证书服务,可以通过简单的在线申请获得证书。

特点
  • 免费计划:提供 90 天有效期的免费证书。

  • 用户友好:易于使用的在线界面,可以手动申请和管理证书。

  • API 支持:提供 API 来自动化证书申请和管理。

申请步骤
  1. 注册账号:访问 ZeroSSL 网站并注册一个免费账号。

  2. 申请证书:通过在线界面或 API 申请一个免费的 SSL 证书。

  3. 验证域名:完成域名验证(DNS 验证、文件验证等)。

  4. 下载和安装证书:在验证成功后下载证书并安装到服务器。

3. Cloudflare

简介

Cloudflare 是一家提供网络安全和内容分发网络(CDN)服务的公司,它提供免费 SSL 证书作为其免费计划的一部分。

特点
  • 免费计划:所有 Cloudflare 用户,包括免费计划用户,都可以获得免费 SSL 证书。

  • CDN 集成:SSL 证书与 Cloudflare 的 CDN 服务集成,提高网站性能和安全性。

  • 易于设置:通过简单的 DNS 配置和 Cloudflare 仪表板即可启用。

申请步骤
  1. 注册 Cloudflare 账号:访问 Cloudflare 网站并注册一个免费账号。

  2. 添加网站:将你的网站添加到 Cloudflare,完成 DNS 配置。

  3. 启用 SSL:在 Cloudflare 仪表板中启用 SSL,选择适当的 SSL 模式(如“完全加密”)。

4. SSL For Free

简介

SSL For Free 使用 Let's Encrypt 提供的服务,通过简单的在线界面帮助用户获取免费 SSL 证书。

特点
  • 免费:完全免费使用。

  • 简便:通过用户友好的界面申请和管理证书。

  • Let's Encrypt 支持:依托 Let's Encrypt 进行证书颁发和管理。

申请步骤
  1. 访问网站:进入 SSL For Free 网站。

  2. 申请证书:输入你的网站域名,选择验证方式(如 DNS 验证或文件验证)。

  3. 完成验证:按照指示完成域名验证。

  4. 下载证书:验证成功后下载证书并安装到服务器。

总结

这些免费证书颁发机构和平台提供了简便、快捷的方法来获取和管理 HTTPS 证书,帮助网站提升安全性并建立用户信任。选择哪种方式取决于你的具体需求和技术背景,无论是自动化程度、易用性还是集成服务,都有适合的方案。

五、付费权威https证书颁发机构汇总

付费的权威 HTTPS 证书颁发机构(CA)提供更高级别的验证、额外的功能和更高的信任度,这些对于企业和需要高级安全保障的网站尤为重要。以下是一些著名的付费证书颁发机构:

1. DigiCert

简介

DigiCert 是全球领先的证书颁发机构,提供多种 SSL/TLS 证书和其他安全解决方案。

特点
  • 高级验证:提供域名验证(DV)、企业验证(OV)和扩展验证(EV)证书。

  • 快速验证和签发:通常能够在较短时间内完成证书签发。

  • 高兼容性:被几乎所有的浏览器和操作系统信任。

  • 额外服务:包括证书管理工具、恶意软件扫描等。

2. Sectigo(原Comodo CA)

简介

Sectigo 是全球最大且最受信任的证书颁发机构之一,前身为 Comodo CA,提供广泛的证书选择。

特点
  • 多样化产品:提供从基础到高级的各种证书,包括 DV、OV、EV 证书,以及多域名和通配符证书。

  • 竞争性价格:提供具有竞争力的价格,适合各种规模的企业。

  • 附加功能:包括网站安全保障、恶意软件扫描、每日网站备份等。

3. GlobalSign

简介

GlobalSign 是一家全球性的证书颁发机构,提供广泛的 SSL/TLS 证书和其他身份验证服务。

特点
  • 企业级解决方案:适合大型企业的高安全性需求。

  • 灵活性:提供各种类型的证书,包括通配符和多域名证书。

  • 自动化工具:提供自动化证书管理和部署工具,简化证书生命周期管理。

4. Entrust

简介

Entrust 提供高质量的 SSL/TLS 证书以及其他网络安全解决方案,致力于保护数字交易和身份验证。

特点
  • 高信任度:提供顶级的安全和信任服务,被广泛接受和信任。

  • 多种证书类型:包括标准 SSL 证书、EV 证书和多域名证书。

  • 附加服务:包括证书管理、身份验证和云安全解决方案。

5. Symantec(现 NortonLifeLock)

简介

Symantec 是著名的网络安全公司,其证书业务已被 DigiCert 收购,但仍以 NortonLifeLock 品牌继续提供 SSL 证书。

特点
  • 高信誉度:Symantec 的品牌在安全领域拥有极高的信誉。

  • 高级安全特性:包括 Norton Secured Seal、恶意软件扫描、漏洞评估等。

  • 广泛信任:被所有主要浏览器和操作系统信任。

6. GeoTrust

简介

GeoTrust 是 DigiCert 旗下的品牌之一,提供中端市场的 SSL/TLS 证书,兼具高性价比和高信任度。

特点
  • 性价比高:提供具有竞争力的价格,适合中小型企业。

  • 多种选择:提供 DV、OV、EV 证书,以及多域名和通配符证书。

  • 易于管理:提供简单的证书管理工具,方便企业使用。

7. Thawte

简介

Thawte 是全球知名的证书颁发机构之一,其证书产品适用于各种规模的企业和组织。

特点
  • 可靠性:提供高可靠性的 SSL/TLS 证书,兼具安全性和信任度。

  • 全球认可:被全球范围内的浏览器和操作系统信任。

  • 多样化产品:提供从基础到高级的各种证书,满足不同需求。

总结

这些付费证书颁发机构在行业内具有很高的信任度和广泛的兼容性,提供的证书不仅能满足基本的安全需求,还能提供额外的安全服务和管理工具,适合对安全性有较高要求的企业和组织。选择合适的证书颁发机构取决于企业的具体需求、预算以及所需的安全级别。

六、常见负载均衡如何配置https证书

在现代网络架构中,负载均衡器(Load Balancer)是用于分发网络流量的关键组件。为了确保安全通信,负载均衡器通常需要配置 HTTPS 证书。以下是一些常见的负载均衡器配置 HTTPS 证书的示例,包括硬件负载均衡器和云提供商的负载均衡服务。

1. Nginx 作为负载均衡器

步骤
  1. 安装 Nginx: 安装 Nginx,通常在 Linux 系统上通过包管理器进行安装。

    sudo apt-get update
    sudo apt-get install nginx
  2. 获取 SSL 证书: 可以使用 Let’s Encrypt 获取免费证书。

    sudo apt-get install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
  3. 配置 Nginx: 编辑 Nginx 配置文件 /etc/nginx/nginx.conf/etc/nginx/sites-available/default

    http {upstream backend {server backend1.example.com;server backend2.example.com;}server {listen 80;server_name yourdomain.com www.yourdomain.com;location / {return 301 https://$host$request_uri;}}server {listen 443 ssl;server_name yourdomain.com www.yourdomain.com;ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
    }
    ```
  4. 重启 Nginx

    sudo systemctl restart nginx

2. AWS Elastic Load Balancer (ELB)

步骤
  1. 创建并上传 SSL 证书: 使用 AWS Certificate Manager (ACM) 申请或上传证书。

  2. 配置 ELB

  • 登录 AWS 管理控制台,导航到 EC2 服务。

  • 选择“Load Balancers”,点击“Create Load Balancer”。

  • 选择“Application Load Balancer”或“Network Load Balancer”。

  • 配置基本设置,选择 VPC 和子网。

  • 在“Listeners and Routing”部分,添加 HTTPS 监听器。

  • 选择 ACM 中的 SSL 证书或上传自己的证书。

配置安全组: 确保负载均衡器的安全组允许 443 端口的入站流量。

配置目标组

  • 创建目标组,添加实例或 IP 地址。

  • 配置健康检查路径。

完成创建并测试: 完成负载均衡器的创建,确保 HTTPS 流量能够正确分发到后端实例。

3. HAProxy 作为负载均衡器

步骤
  1. 安装 HAProxy

    sudo apt-get update
    sudo apt-get install haproxy
  2. 获取 SSL 证书: 使用 Let’s Encrypt 获取免费证书。

    sudo apt-get install certbot
    sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
  3. 配置 HAProxy: 编辑 HAProxy 配置文件 /etc/haproxy/haproxy.cfg

    frontend https_frontbind *:443 ssl crt /etc/letsencrypt/live/yourdomain.com/fullchain.pem crt /etc/letsencrypt/live/yourdomain.com/privkey.pemmode httpdefault_backend serversbackend serversmode httpbalance roundrobinserver server1 backend1.example.com:80 checkserver server2 backend2.example.com:80 check
  4. 重启 HAProxy

    sudo systemctl restart haproxy

4. Google Cloud Load Balancer

步骤
  1. 创建并上传 SSL 证书: 使用 Google Cloud Console 申请或上传证书。

  2. 配置负载均衡器

  • 登录 Google Cloud Console,导航到“Network services” -> “Load balancing”。

  • 点击“Create load balancer”,选择“HTTP(S) Load Balancing”。

  • 配置负载均衡器的基本设置,添加前端配置。

  • 添加 HTTPS 协议并选择上传的证书。

配置后端服务: 创建或选择现有的后端服务,添加实例组或 GKE 集群。

测试和验证: 完成配置后,确保 HTTPS 流量能够正确分发到后端服务。

通过这些示例,可以看到不同的负载均衡器如何配置 HTTPS 证书来确保安全的通信。选择适合你的架构和需求的负载均衡器和配置方法尤为重要。

就这样。

201997f0c8981bc0bf9ad71227de209c.png

希望对您有用!关注锅总,可及时获得更多花里胡哨的运维实用操作!

这篇关于详解互联网基石之HTTPS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084700

相关文章

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

十四、观察者模式与访问者模式详解

21.观察者模式 21.1.课程目标 1、 掌握观察者模式和访问者模式的应用场景。 2、 掌握观察者模式在具体业务场景中的应用。 3、 了解访问者模式的双分派。 4、 观察者模式和访问者模式的优、缺点。 21.2.内容定位 1、 有 Swing开发经验的人群更容易理解观察者模式。 2、 访问者模式被称为最复杂的设计模式。 21.3.观察者模式 观 察 者 模 式 ( Obser

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

iOS HTTPS证书不受信任解决办法

之前开发App的时候服务端使用的是自签名的证书,导致iOS开发过程中调用HTTPS接口时,证书不被信任 - (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAu

Jitter Injection详解

一、定义与作用 Jitter Injection,即抖动注入,是一种在通信系统中人为地添加抖动的技术。该技术通过在发送端对数据包进行延迟和抖动调整,以实现对整个通信系统的时延和抖动的控制。其主要作用包括: 改善传输质量:通过调整数据包的时延和抖动,可以有效地降低误码率,提高数据传输的可靠性。均衡网络负载:通过对不同的数据流进行不同程度的抖动注入,可以实现网络资源的合理分配,提高整体传输效率。增

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选,相信大家多多少少的都听说过它。它可以快速地储存、搜索和分析海量数据。就连维基百科、Stack Overflow、

常用MQ消息中间件Kafka、ZeroMQ和RabbitMQ对比及RabbitMQ详解

1、概述   在现代的分布式系统和实时数据处理领域,消息中间件扮演着关键的角色,用于解决应用程序之间的通信和数据传递的挑战。在众多的消息中间件解决方案中,Kafka、ZeroMQ和RabbitMQ 是备受关注和广泛应用的代表性系统。它们各自具有独特的特点和优势,适用于不同的应用场景和需求。   Kafka 是一个高性能、可扩展的分布式消息队列系统,被设计用于处理大规模的数据流和实时数据传输。它

Linux中拷贝 cp命令中拷贝所有的写法详解

This text from: http://www.jb51.net/article/101641.htm 一、预备  cp就是拷贝,最简单的使用方式就是: cp oldfile newfile 但这样只能拷贝文件,不能拷贝目录,所以通常用: cp -r old/ new/ 那就会把old目录整个拷贝到new目录下。注意,不是把old目录里面的文件拷贝到new目录,

笔记-python之celery使用详解

Celery是一个用于处理异步任务的Python库,它允许你将任务分发到多个worker进行处理。以下是Celery的使用详解: 安装Celery 使用pip安装Celery: pip install celery 创建Celery实例 首先,需要创建一个Celery实例,指定broker(消息中间件)和backend(结果存储)。 from celery import Celeryap