我在Windows上使用OpenSSL,并试图简单地评估远程服务器是否启用了旧密码(RC 4)。
我目前的OpenSSL版本是v3.0.8。实际上我已经在这里找到了一些帮助How to enable the OpenSSL 3.0 legacy provider Github Actions?,但在我的情况下还不够。请注意,我没有编译任何东西,只是尝试使用常规安装的Win 64-OpenSSL与遗留提供程序。
我已经修改了OpenSSL配置文件以添加并激活旧版提供程序,还配置了OPENSSL_MODULES环境变量以查找旧版dll(在其默认安装后位置,位于C:\Program Files\OpenSSL-Win 64\bin下)。
多亏了它,我才能运行这个:
>openssl list -providers -provider legacy
Providers:
legacy
name: OpenSSL Legacy Provider
version: 3.0.8
status: active
但我跑起来好像是个“空箱”:
>openssl ciphers -provider legacy -v
6C1F0000:error:0A0000A1:SSL routines:SSL_CTX_new_ex:library has no ciphers:ssl\ssl_lib.c:3290:
而且我在尝试连接到我的远程服务器时也得到了同样的错误。
有没有人能帮忙?:)
1条答案
按热度按时间dgsult0t1#
对于有相同问题的人:实际上,我必须构建自己的OpenSSL版本,在构建过程中只添加一个标记“enable-weak-ssl-ciphers”。
我直接在OpenSSL GitHub页面上得到了答案:https://github.com/openssl/openssl/issues/20526
为了构建我自己的OpenSSL,我遵循了这个优秀的分步指南:https://developers.refinitiv.com/en/article-catalog/article/how-to-build-openssl--zlib--and-curl-libraries-on-windows(注意:这需要下载Virtual Studio、Perl和NASM,所以相当“重”,但工作完美:))