侧边栏壁纸
  • 累计撰写 131 篇文章
  • 累计创建 16 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录
Web   

域名与SSL详解

域名

域名是互联网上任何一个网站的网络地址,它使我们能够访问各种网站资源。域名的设计旨在便于人们记忆,而不必记住复杂的数字序列(即IP地址),并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

域名的结构

  1. 顶级域名(TLD):域名的最右部分,例如“.com”、“.org”和“.net”等
  2. 二级域名:顶级域名左边的部分,通常是公司或组织的名称,例如在“google.com”中,“google”就是二级域名。
  3. 子域名:位于二级域名前的可选部分,如“mail.google.com”中的“mail”。

备案

一级域名在国内需要备案,而二级域名不需要单独备案,只要它所处的一级域名已经备案,就能直接解析。

一般网站只用到顶级域名即可,有时候一个网站系统比较庞大,那么就可能使用多个域名,如果去申请多个域名肯定不划算,这个时候,使用已申请的一个域名的二级域名的处理方式就应运而生。

比如百度买下了baidu.com这一顶级域名,将baidu.com绑定了一个地址,map.baicu.com、music.baicu.com也绑定到了各个地址,不用单独花钱,只是购买了baidu.com这一个顶级域名

SSL

SSL(Secure Sockets Layer)是一种用于在网络上建立安全连接的协议。它已经被其继任者TLS(Transport Layer Security)所取代,但人们常常仍然使用“SSL”来指代这类协议。以下是SSL的主要功能和概念:

主要功能

  1. 数据加密:SSL通过加密算法确保数据在传输过程中不被窃听或篡改。这意味着即使数据被截获,攻击者也无法读取其内容。

  2. 数据完整性:SSL使用校验和和哈希函数来确保数据在传输过程中没有被篡改。如果数据被修改,接收方会检测到并丢弃这些数据。

  3. 身份验证:SSL使用数字证书来验证服务器和客户端的身份。数字证书由权威的证书颁发机构(CA)颁发,确保连接的一方是它声称的那一方。

SSL/TLS 连接过程

  1. 握手阶段

    • 客户端向服务器发送请求,并包含客户端支持的加密算法列表。
    • 服务器从中选择一个加密算法,并向客户端发送数字证书。
    • 客户端验证服务器证书的有效性。
    • 客户端生成一个随机数,并使用服务器的公钥加密该随机数,然后发送给服务器。
    • 服务器使用自己的私钥解密随机数,从而生成会话密钥。
  2. 加密通信

    • 双方使用会话密钥对通信数据进行加密和解密,确保数据在传输过程中保密。

获取和使用SSL证书

  1. 选择证书类型和供应商:根据网站需求选择合适的证书类型和供应商,例如Let’s Encrypt(免费)或商业证书供应商。
  2. 生成证书签名请求(CSR):在服务器上生成CSR文件,包含公钥和域名信息。
  3. 提交CSR并获取证书:将CSR提交给证书颁发机构,经过验证后获取SSL证书。
  4. 安装证书:将SSL证书安装到服务器上,并配置服务器使用该证书进行加密通信。

Let’s Encrypt 使用

将Let’s Encrypt与Nginx结合使用,以下是完整的步骤和修改后的Nginx配置:

步骤 1: 安装Certbot和Nginx插件

在基于Debian/Ubuntu的系统上,使用以下命令安装Certbot和Nginx插件:

sudo apt update
sudo apt install certbot python3-certbot-nginx

步骤 2: 使用Certbot获取SSL证书并自动配置Nginx

使用Certbot获取Let’s Encrypt证书并自动配置Nginx。以下命令会获取证书并修改Nginx配置以启用HTTPS:

sudo certbot --nginx -d zhengyu.tech

步骤 3: 验证配置并重启Nginx

Certbot会自动修改你的Nginx配置文件以启用HTTPS。以下是修改后的Nginx配置文件示例:

# 具体打开自己的会有注明 managed by Certbot

步骤 4: 重启Nginx

sudo systemctl restart nginx

步骤 5: 自动续期

Certbot会自动设置续期任务。你可以通过以下命令检查自动续期是否正常工作:

sudo certbot renew --dry-run

以上步骤完成后,你的Nginx服务器将使用Let’s Encrypt的SSL证书来提供HTTPS服务,并自动续期证书。

0

评论区