OpenSSL 3.0.2无法启用GOST引擎,求排查问题原因
问题描述
我已按照安装指南操作,当前环境信息如下:
- OpenSSL版本:
openssl version >> OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
- 引擎目录路径:
openssl version -e >> ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-3"
- 该目录下已存在gost.so文件:
ls /usr/lib/x86_64-linux-gnu/engines-3 >> afalg.so gost.so loader_attic.so padlock.so
但执行openssl ciphers | grep "GOST"无任何输出,我的/usr/lib/ssl/openssl.cnf配置如下:
[openssl_def] engines = engine_section [engine_section] gost = gost_section [gost_section] engine_id = gost dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/gost.so default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
请问哪里操作有误?
可能的原因及解决方法
- 适配OpenSSL 3.0的provider框架
OpenSSL 3.0弃用了旧版engine的部分配置逻辑,改用provider框架管理加密组件。需要修改openssl.cnf,替换原有engine配置为provider格式:
[openssl_def] providers = provider_sect [provider_sect] default = default_sect gost = gost_sect [default_sect] activate = 1 [gost_sect] activate = 1 engine_id = gost dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/gost.so CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
先验证引擎加载状态
执行openssl engine -t -c gost,如果返回"available"说明引擎加载正常;若加载失败,检查gost.so的文件权限,确保当前用户有读取权限。调整密码套件查询命令
OpenSSL 3.0对GOST套件的查询逻辑有变化,改用以下命令尝试:
openssl ciphers -v | grep GOST
或直接指定具体套件名称:
openssl ciphers GOST28147-GOST89-GOST89
内容的提问来源于stack exchange,提问作者haku
相关产品推荐
相关产品推荐

