OpenSSL Legacy Provider 实战:处理遗留证书验证问题
升级到 OpenSSL 3.x 后,很多老系统生成的证书无法验证通过,错误提示类似 error:0308010C:digital envelope routines。这通常是因为 OpenSSL 3.0 默认禁用了遗留算法(MD5、SHA-1、DES、RC4 等)。本文介绍如何配置 Legacy Provider 来处理这些遗留证书。 问题背景 OpenSSL 3.0 引入了 Provider 架构,密码学算法的实现被分离到独立的 Provider 中: Default Provider:提供现代安全算法(AES、SHA-2、ChaCha20 等) FIPS Provider:提供 FIPS 140-2 认证的算法 Legacy Provider:提供遗留算法(MD5、SHA-1、DES、RC4、CAST 等) 默认情况下,只有 Default Provider 启用,因此使用遗留算法的操作会失败。 验证问题现象 1. DES 加密失败 1 2 3 4 5 $ echo -n "test" | openssl enc -des-ede3-cbc enc: Unknown cipher: des-ede3-cbc error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported: ../crypto/evp/evp_fetch.c:386:Global default library context, Algorithm (des-ede3-cbc : 27), Properties (<null>) 2....