跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    EL 9:OpenSSL 3.0

    EL 9 的 OpenSSL 从 1.1.1 跨到 3.0,这是 OpenSSL 十多年来的最大架构调整:加密实现改为可插拔的 provider,而一批不安全的旧算法被移入默认不加载的 legacy provider。依赖旧哈希或旧密码套件的应用,会在升级后第一次握手/校验时失败。

    OpenSSL 3.0 把算法实现从引擎(engine)模型迁移到 provider 模型:

    • default provider:AES、SHA-2/3、RSA、EC、ChaCha20 等现代算法;
    • legacy provider:MD4、MD2、RC2、RC4、Blowfish、CAST、IDEA、SEED、单 DES、RIPEMD160 等;
    • base / null / fips provider:编码、空实现与 FIPS 验证模块。

    legacy provider 默认不加载:应用请求 MD4 之类的算法会直接报错(如 unsupported / digital envelope routines::unsupported),而不是像 1.1 时代那样照常工作。

    同时,EL 9 的加密策略继续作用于 OpenSSL:DEFAULT 策略本身就会拒绝弱算法,legacy provider 解决的是”策略允许但 3.0 默认不加载”的那一层。

    项EL 8EL 9
    OpenSSL 版本1.1.13.0.x
    算法架构engineprovider
    MD4/RC4/DES 等默认可用在 legacy provider,默认不加载
    查看 provider无此概念openssl list -providers
    • 老应用与老文件格式:使用 MD4 哈希的旧备份/旧协议客户端(部分 SMB 旧实现、旧版数据库驱动、旧 PFX/P12 文件)会报 unsupported 类错误。
    • 自研代码:直接调用 EVP_md4() 等低层 API 的程序需要改走显式加载 legacy provider,或换用现代算法。
    • 证书与 TLS:现代 TLS 不受影响;问题集中在旧密码套件与旧哈希签名,这部分同时受加密策略约束。
    查看已加载的 provider
    openssl list -providers
    临时为单个进程加载 legacy provider(排障用)
    OPENSSL_CONF=/etc/crypto-policies/back-ends/opensslcnf.config openssl list -algorithms | grep -i md4

    处置顺序建议:

    1. 换算法:MD4 → SHA-256,RC4/DES → AES-GCM,旧签名证书重签;
    2. 应用侧显式加载 legacy provider(代码中 OSSL_PROVIDER_load(NULL, "legacy"));
    3. 确属外部不可控组件时,评估 FIPS/加密策略 与 legacy 的组合配置,限定影响范围。