私は受け取っているので、Ubuntu 20.04でSSLセキュリティレベルを1に下げる方法があるかどうか尋ねたいです。
141A318A:SSL routines:tls_process_ske_dhe:dh key too small
ウェブサイトをカールしようとしたとき。
--ciphers 'DEFAULT:!DH'
パラメーターを追加するとCurlは機能しますが、C#で記述されたクライアントアプリからWebサイトを取得できません。ブラウザを介して開かれたときにもウェブサイトは機能します。
bugs.launchpad.net によれば、Ubuntuチームは意図的により高いSSLセキュリティレベルを設定しています。
いくつかの場所で、CipherString = DEFAULT@SECLEVEL=2
の1
をopenssl.cnf
に変更すると役立つという情報を見つけましたが、私の設定ファイルにはそのような行がまったくなく、追加しても効果がありませんでした。
私はWebサイトサーバーを制御していないため、セキュリティ構成を変更できません。
何か案は?古いopenSSLパッケージをインストールすると役立つでしょうか?
前もって感謝します
編集:私の設定ファイルへの変更に関しては、私は最後に以下を追加しました:
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1
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
設定の変更が正しくありません。これを設定ファイルの先頭に追加する必要があります:
openssl_conf = default_conf
そして、これは最後まで:
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = ssl_default_sect
[ssl_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1
設定ファイルのローカルコピーを変更したい場合は、環境変数OPENSSL_CONF
が設定ファイルの場所を指すように定義されてプロセスが開始されていることを確認してください。
export OPENSSL_CONF=/path/to/my/openssl.cnf
これにより、システム全体に影響を与えることなく変更を行うことができます。
注:システムのopenssl.cnfファイルを見つけるには、次のコマンドを実行します。
% openssl version -d
必要に応じて、出力されたディレクトリでls -l
を実行して、openssl.cnf
ファイルがそのディレクトリのシンボリックリンクを介してどこにあるかを確認します。