02-ubuntu24.04证书体系架构及证书有关配置文件、工具详细介绍

Ubuntu 24.04 LTS 证书体系架构及文件存储结构详细介绍

一、证书体系架构

Ubuntu 24.04 LTS 的证书体系以 系统信任库 为核心,结合 OpenSSL/GnuTLS 配置、APT 存储库签名验证和 AppArmor 安全策略,形成多层次的安全防护机制。

  1. 系统信任库

    • 路径/etc/ssl/certs/
      该目录包含预装的根证书和中间证书,用于验证 TLS/SSL 连接(如 HTTPS 网站)。系统通过 update-ca-certificates 工具管理证书,支持从 /usr/local/share/ca-certificates/ 自动加载用户或第三方证书。
    • 配置文件/etc/ca-certificates.conf
      定义哪些证书被信任,可通过修改此文件禁用特定证书。
  2. OpenSSL 与 GnuTLS 配置

    • OpenSSL

      • 默认配置文件路径:/etc/ssl/openssl.cnf
        定义证书链验证规则、默认加密算法(如禁用 TLS 1.0/1.1,强制 RSA 密钥≥2048 位)。

      • 关键参数:

        ini 复制代码
        [system_default_sect]
        MinProtocol = TLSv1.2  # 强制最低 TLS 版本
        CipherString = DEFAULT:@SECLEVEL=2  # 加密套件安全级别
    • GnuTLS

      • 配置文件路径:/etc/gnutls/config
        与 OpenSSL 协同工作,确保系统范围配置一致性。例如,AppArmor 规则默认授予对其配置文件的访问权限,防止因权限问题导致配置失效。
  3. APT 存储库签名验证

    • 要求:APT 存储库必须使用≥2048 位的 RSA 密钥、Ed25519 或 Ed448 签名。
    • 1024 位密钥处理
      若检测到旧版 1024 位弱密钥,APT 会发出警告并阻止更新,直至用户迁移至强密钥(通过删除并重新添加 PPA 解决)。
  4. AppArmor 安全策略

    • 非特权用户命名空间限制
      默认禁止非特权用户使用用户命名空间,但通过 AppArmor 配置文件为特定应用(如 Chrome 沙箱)开放例外,减少内核攻击面。

    • 配置文件示例

      复制代码
      /etc/apparmor.d/chrome {
        # 允许 Chrome 使用用户命名空间
        flags=(unconfined)
      }
二、证书相关配置文件与工具
  1. SSH 证书登录配置

    • 生成密钥对

      bash 复制代码
      ssh-keygen -t ed25519 -a 100  # 推荐 Ed25519 密钥
      ssh-keygen -t rsa -b 4096     # 或 RSA 4096 位密钥
    • 配置 SSH 服务端
      修改 /etc/ssh/sshd_config,启用公钥认证并禁用密码登录:

      ini 复制代码
      PubkeyAuthentication yes
      PasswordAuthentication no
      AuthorizedKeysFile .ssh/authorized_keys
    • 重启服务

      bash 复制代码
      systemctl restart sshd
  2. Certbot 生成 SSL 证书

    • 安装 Certbot

      bash 复制代码
      apt install certbot python3-certbot-nginx
    • 获取证书 (以 Nginx 为例):

      bash 复制代码
      certbot --nginx -d example.com -d www.example.com
    • 证书路径

      • 公钥:/etc/letsencrypt/live/example.com/fullchain.pem
      • 私钥:/etc/letsencrypt/live/example.com/privkey.pem
  3. Nginx 配置 SSL

    • 示例配置

      nginx 复制代码
      server {
          listen 443 ssl;
          server_name example.com;
          ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers HIGH:!aNULL:!MD5;
      }
    • 强制 HTTPS 跳转

      nginx 复制代码
      server {
          listen 80;
          server_name example.com;
          return 301 https://$host$request_uri;
      }
  4. 手动添加证书到系统信任库

    • 步骤
      1. 将证书文件(.crt.pem)复制到 /usr/local/share/ca-certificates/
      2. 运行 update-ca-certificates 更新信任库。
三、关键安全特性
  1. TLS 版本强制

    • 默认禁用 TLS 1.0/1.1 和 DTLS 1.0,仅允许 TLS 1.2/1.3,提升连接安全性。
  2. APT 存储库签名强化

    • 弃用 1024 位 RSA 密钥,要求存储库使用强密钥签名,防止中间人攻击。
  3. AppArmor 集成

    • 默认授予 OpenSSL/GnuTLS 配置文件访问权限,确保系统范围配置一致性。
四、总结

Ubuntu 24.04 LTS 的证书体系通过 系统信任库、OpenSSL/GnuTLS 配置、APT 签名验证和 AppArmor 策略 构建了多层次的安全防护。关键配置文件(如 /etc/ssl/openssl.cnf/etc/ssh/sshd_config)和工具(如 Certbot、update-ca-certificates)简化了证书管理,同时强制安全策略(如禁用弱加密算法)有效降低了攻击风险。对于企业环境,建议结合 Ubuntu Pro 订阅延长支持周期,并定期审计证书配置。

相关推荐
catoop2 小时前
在 Windows 中基于 WSL 子系统 Ubuntu 安装配置 conda 示例
windows·ubuntu·conda
老黄编程2 小时前
03-gpg(证书管理 )详细范例
linux·运维·ubuntu·数字证书
莱茶荼菜3 小时前
Ubuntu 20.04 系统库管理详细教程
linux·运维·ubuntu
xiaotao1315 小时前
unity hub在ubuntu 22.0.4上启动卡住
ubuntu·unity·游戏引擎
大大da怪i8 小时前
WSL-Ubuntu忘记root密码,修改root密码
linux·ubuntu
老黄编程8 小时前
09-ubuntu20.04 执行 apt update时报错,是因为官网已停止维护不再更新的缘故吗?
linux·运维·服务器·ubuntu·数字证书
脑子不好的小菜鸟8 小时前
用vscode连接远端ubuntu无法git push,vscode无法连接centos
git·vscode·ubuntu·centos
水月wwww8 小时前
ubuntu网络连接出错解决办法
linux·运维·计算机网络·ubuntu·操作系统·ubuntu网络连接
_Johnny_8 小时前
Ubuntu 配置临时 IP 和 VLAN
tcp/ip·ubuntu·php