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 订阅延长支持周期,并定期审计证书配置。

相关推荐
欧云服务器5 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI5 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年5 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2005 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟5 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬5 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民5 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬5 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L5 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区