Łuk*_*ski 41 security ssl curl openssl 20.04
我想问一下是否有办法在 Ubuntu 20.04 上将 SSL 安全级别降低到 1,因为我收到:
141A318A:SSL routines:tls_process_ske_dhe:dh key too small
Run Code Online (Sandbox Code Playgroud)
尝试卷曲网站时。
如果我添加--ciphers 'DEFAULT:!DH'参数,Curl 就可以工作,但是,我无法通过我用 C# 编写的客户端应用程序获取网站。该网站在通过浏览器打开时也能正常工作。
根据bugs.launchpad.net,Ubuntu 团队故意设置了更高的 SSL 安全级别。
在几个地方,我遇到了一个信息,更改CipherString = DEFAULT@SECLEVEL=2为1inopenssl.cnf帮助,但我的配置文件根本没有这样的行并且添加它没有任何效果。
我不控制网站服务器,因此我无法更改其安全配置。
有任何想法吗?安装一些旧的 openSSL 包会有帮助吗?
提前致谢
编辑:至于对我的配置文件的更改,我在最后添加了以下内容:
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
输出openssl version -a:
OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Apr 20 11:53:50 2020 UTC
platform: debian-amd64
options: bn(64,64) rc4(16x,int) des(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,
--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-P_ODHM/openssl-1.1.1f=.
-fstack-protector-strong -Wformat -Werror=format-security
-DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE
-DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ
-DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m
-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM
-DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM
-DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
-Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl" ENGINESDIR:
"/usr/lib/x86_64-linux-gnu/engines-1.1" Seeding source: os-specific
Run Code Online (Sandbox Code Playgroud)
Mat*_*ell 64
您没有完全正确地更改配置。您需要将其添加到配置文件的开头:
openssl_conf = default_conf
Run Code Online (Sandbox Code Playgroud)
然后到最后:
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
请注意,如果您愿意,您可以更改配置文件的本地副本,然后确保您的进程使用OPENSSL_CONF定义为指向配置文件位置的环境变量启动:
export OPENSSL_CONF=/path/to/my/openssl.cnf
Run Code Online (Sandbox Code Playgroud)
这样您就可以在不影响整个系统的情况下进行更改。
注意:要查找系统的 openssl.cnf 文件,请运行以下命令:
% openssl version -d
Run Code Online (Sandbox Code Playgroud)
在ls -l输出的目录上运行以openssl.cnf根据需要通过该目录中的符号链接查看文件的位置。
小智 8
编辑openssl.conf文件:
sudo nano /etc/ssl/openssl.cnf
Run Code Online (Sandbox Code Playgroud)
在顶部添加此行:
openssl_conf = openssl_init
Run Code Online (Sandbox Code Playgroud)
并在最后添加这些行:
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
这个对我有用。:)
上面的两个解决方案让我感到困惑。
您只需要在 /usr/lib/ssl/openssl.cnf 中进行两块修改,如此差异所记录的那样:
rcsdiff ./openssl.cnf
===================================================================
RCS file: ./openssl.cnf,v
retrieving revision 1.1
diff -r1.1 ./openssl.cnf
13a14,15
> openssl_conf = default_conf
>
350a353,362
>
> [default_conf]
> ssl_conf = ssl_sect
>
> [ssl_sect]
> system_default = system_default_sect
>
> [system_default_sect]
> MinProtocol = TLSv1.2
> CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
对于剪切和粘贴:
openssl_conf = default_conf
Run Code Online (Sandbox Code Playgroud)
[default_conf]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59579 次 |
| 最近记录: |