PKI与HTTPS服务器部署

01 PKI概述

  • 英文全称:Public Key Infrastructure
  • 中文名称:公钥基础设施
  • 基本组成:由公钥加密技术、CA、RA、CRL、LDAP、数字证书等构成。

02 信息安全三要素/四要素

  • 机密性
  • 完整性/身份验证
  • 可用性

提示:PKI 套件可以完成保护机密性完整性以及身份验证

03 PKI的技术应用领域

  • HTTPS:S $\rightarrow$ SSL,加密技术使用了 PKI。
  • VPN:包括 ipsecvpn、pptp vpn、ssl vpn 等等。
  • 门禁:基于 PKI 技术。

04 公钥加密技术

  • 定义:对信息进行加密身份验证,然后进行加密传输!
  • 分类:对称加密算法、非对称加密算法、哈希算法。

4.1 对称加密算法

  • 基本公式:$x + 5 = y$(其中算法/数学公式就是明文,$y$ 是密文,$5$ 是密钥)。
  • 特点:加密与解密的密钥一致相同,这种算法叫对称加密算法,这种密钥叫对称密钥。
  • 最大优点:加密速度快!
  • 最大缺点:对称密钥的传输问题!
  • 常见的对称加密算法
    • DES:56位,分组加密算法。
    • 3DES:56位、56位、56位。
    • AES:包括 AES128、AES192、AES256、AES512。
    • 注:对称密钥是通过算法本身协商生成的。
  • 国密对称算法
    • SM1算法
      • 类型:分组密码算法。
      • 规格:分组长度和密钥长度均为 128 位。
      • 应用:广泛应用于金融、电子政务、物联网等领域的数据加密和保护中;常用于智能密码钥匙、门禁卡等系列芯片中。
    • SM4算法
      • 类型:分组密码算法。
      • 规格:分组长度和密钥长度均为 128 位。
      • 应用:主要用于对数据进行加密和解密操作,在数据保密性保护方面有着广泛的应用(例如在对称加密通信场景下,对传输的数据块进行加密)。同时也是无线局域网标准的分组数据算法。
    • SM7算法
      • 类型:分组密码算法。
      • 规格:分组长度和密钥长度均为 128 位。
      • 应用:主要用于非接触式 IC 卡,如校园一卡通、工作证等。

4.2 非对称加密算法

  • 特点:加密与解密的密钥不同,这种算法叫非对称加密算法,这种密钥叫非对称密钥。加密密钥与解密密钥称为一对密钥对,也叫公私钥。
  • 关系:公私钥互为加解密关系,但是神奇的是成对的公私钥不能互相反推!
  • 优缺点
    • 优点:足够安全!可以完成机密性和身份验证。
    • 缺点:速度极其慢!
  • 常见算法家族
    • RSA2048 / RSA1024
    • DH1 / DH2 / DH5
    • ECC256 / ECC128
    • SM2(国密)
    • DSA
  • 国密非对称应用场景对比
    算法主要功能典型应用场景
    SM2数字签名、密钥交换、加密电子合同、金融交易、安全通信
    SM9标识绑定、数字签名、加密物联网设备认证、分布式系统身份管理
  • 国密非对称加密算法的优势
    1. 自主可控:由国家密码管理局制定,避免依赖国际算法。
    2. 高安全性:基于复杂数学问题,抗攻击能力强。
    3. 高效性:密钥长度短,计算速度快,适合资源受限环境。
    4. 合规性:在金融、电子政务等领域为强制标准。

4.3 算法的合作

  • 核心原理:用非对称加密算法加密并同步对称密钥,然后用对称加密算法加密实际要传输的数据。
  • (可以自行研究下方的加解密流程图,并尝试进行口述)

4.4 哈希算法

  • 作用:保证数据的完整性!防止被篡改、数据发现破坏等等!
  • 常见算法:MD5、SHA-1、SHA-256、SHA512。
  • HASH算法特点
    • 不可逆。
    • hash 值固定长度。
    • hash 值非常稳定!
    • 加密后的值很小(如 128位、160位、256位、512位)。
    • 加密后的数据常被称为:摘要 / 哈希值 / hash值
  • 哈希算法的唯一性:同样的数据,无论加密多少次,hash 值都不变!


05 CA与组件基础

  • CA:证书颁发机构。
  • RA:配合 CA 来接受申请证书与发放证书。
  • CRL:证书吊销列表。
  • LDAP:存储证书的数据库。
  • 各组件核心作用汇总
    • 接收证书申请:RA
    • 证书颁发审批、证书颁发:CA
    • 证书吊销:CRL
    • 证书存储:LDAP

06 数字证书

  • 证书格式标准:X.509。
  • 证书包含的核心内容
    1. 持有者的信息(域名地址、电话、联系人等等)。
    2. 持有者的公钥(重点:这是证书存在的根本意义!)
    3. CA 的数字签名 / SHA 指纹。
    4. 颁发者的名称与信息。
    5. 颁发日期与证书有效期。


07 部署HTTPS服务器

实验环境

  • HTTPS 服务器:Windows Server 2019(要求:必须还原快照,开机后关闭防火墙,测试网络连通性)。
  • 客户机:Windows 7(建议还原快照)。

实验步骤

1. 安装 IIS

  • 安装时,需全部勾选 IIS 的应用程序。
  • 检查 IIS 自带的网站,切记不要删除,也不要停用默认网站

2. 添加一个 flower 网站

  • 为了避免 80 端口冲突,新的 flower 网站要求用户使用域名来访问:http://www.flower.com
  • 添加网站后,需要设置索引。

3. 用户测试访问 flower

  • 需要增加解析,本次实验通过修改客户端的 hosts 文件来手动添加解析。
  • 再次访问 http://www.flower.com 测试成功。
  • (到此为止基本的 HTTP 服务器实验成功,但此时还没有 HTTPS 加密功能!)

4. 安装部署 CA 服务器

  • 打开“添加角色和功能向导”,选择服务器角色,勾选 Active Directory 证书服务
  • 在选择角色服务页面,勾选 证书颁发机构证书颁发机构 Web 注册
  • 注意:开始安装,安装完毕后,千万!!!不要点击关闭。而是要点击界面上的蓝色链接进行“配置目标服务器上的 Active Directory 证书服务”。
  • 在 AD CS 配置向导中:
    • 角色服务:勾选配置“证书颁发机构”和“证书颁发机构 Web 注册”。
    • CA 类型:选择 根 CA (R)(根 CA 位于 PKI 层次结构的顶部,颁发其自己的自签名证书)
    • CA 名称:在此 CA 的公用名称(C)中输入:Global sign dafeige
    • 其他设置默认下一步即可,最后点击配置并关闭。

5. IIS - flower 填写证书申请

  • 打开 IIS 管理器,导航至服务器主页,双击 “服务器证书” 功能。

  • 在右侧操作栏点击 “创建证书申请…”,在弹出的窗口中填写可分辨名称属性。其中通用名称(M)必须填写完整域名www.flower.com

  • 点击下一步,选择加密服务提供程序属性(如 Microsoft RSA SChannel Cryptographic Provider),位长选择 2048,以此来生成 flower 网站的公私钥,并将申请保存为文本文件。

6. 向 CA 提交申请

  • 在 Windows Server 2019 上打开浏览器,访问 CA 服务器的 Web 注册网站:http://192.168.206.145/certsrv
  • 点击 “申请证书”

  • 点击 “高级证书申请”

  • 选择 “使用 base64 编码的 CMC 或 PKCS #10 文件提交一个证书申请…”

  • 将前面在 IIS 中生成的 base64 编码的证书请求文本内容复制并粘贴到 “保存的申请” 框中,然后点击 “提交”

7. 打开 CA 服务器 - 颁发证书

  • 进入证书颁发机构管理后台,在“挂起的请求”中找到该申请,右键选择颁发。

8. 下载 flower 数字证书

  • 再次访问 CA 的官方 Web 注册网站,查看申请状态,将已颁发的证书下载到本地(例如 certnew.cer)。

9. 导入 flower 证书到 IIS 中

  • 回到 IIS 的“服务器证书”界面,点击右侧操作栏的 “完成证书申请…”
  • 选择刚刚下载的证书文件,并为它指定一个好记的名称(如 flower)。

10. 为 flower 网站绑定 HTTPS 服务

  • 在 IIS 中打开 flower 网站的绑定设置,添加一条 https 类型的绑定,端口为 443,并在 SSL 证书下拉菜单中选择刚刚导入的 flower 证书。

11. 客户端测试访问 HTTPS

  • 此时在客户端使用电脑访问 https://www.flower.com
  • 现象:由于客户端浏览器尚未信任该根 CA,此时会提示证书安全有问题。点击“继续浏览此网站”可以成功访问!

12. 解决客户端浏览器报错

  • 在客户端 Windows 7 上,同样访问 CA 的官方网站下载 CA 的根证书。
  • 下载后双击打开证书,选择 “安装证书”,将其导入到浏览器的 “受信任的根证书颁发机构” 存储区中。
  • 再次刷新访问网站,安全警告红牌报错即可消失。