GnuTLS: The Diffie-Hellman prime sent by the server is not acceptable (not long enough).の解決法
wgetやcurlでwebサイトのデータを取得しようとしているときに下記のエラーが発生することがあります。
GnuTLS: The Diffie-Hellman prime sent by the server is not acceptable (not long enough).
サーバーから送信されたDiffie-Hellman素数は受け入れられません(十分な長さではありません)。
content:Cannot create SSL connection: SSL connect attempt failed error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
内容:SSL接続を作成できません:SSL接続の試行に失敗しましたエラー:141A318A:SSLルーチン:tls_process_ske_dhe:dhキーが小さすぎます
これはDiffie-Hellmanパラメーターの長さが短い場合に発生するエラーです。
現在のシステム全体のポリシーレベルを確認する方法
システム全体のポリシーレベルを変更する方法
アプリケーションごとにポリシーレベルを変更する方法
コマンド単位でポリシーレベルを変更する方法
このエラーを回避するには、許容されるDiffie-Hellmanパラメーターの長さを変更する必要があります。
CentOS8以降ではシステム全体の暗号化ポリシーをcrypto-policiesで管理しています。
ポリシーレベル | 詳細 |
---|---|
DEFAULT |
デフォルトのシステム全体の暗号化ポリシーレベルで、現在の脅威モデルに対して安全なものです。
TLS プロトコルの 1.2 と 1.3、IKEv2 プロトコル、および SSH2 プロトコルが使用できます。 RSA 鍵と Diffie-Hellman パラメーターは長さが 2048 ビット以上であれば許容されます。 |
LEGACY |
このポリシーは、Red Hat Enterprise Linux 5 以前のリリースとの互換性を最大化しますが、攻撃領域が大きくなるため脆弱になります。
DEFAULT レベルでのアルゴリズムとプロトコルに加えて、TLS プロトコル 1.0 および 1.1 を許可します。 アルゴリズム DSA、3DES、および RC4 が許可され、RSA 鍵と Diffie-Hellman パラメーターの長さが 1023 ビット以上であれば許容されます。 |
FUTURE |
近い将来の攻撃に耐えられると考えられている保守的なセキュリティーレベルです。
このレベルは、署名アルゴリズムに SHA-1 の使用を許可しません。RSA 鍵と Diffie-Hellman パラメーターは、ビット長が 3072 以上だと許可されます。 |
FIPS |
FIPS140-2 要件に準拠するポリシールールです。
これは、fips-mode-setup ツールの内部で使用され、RHEL システムを FIPS モードに切り替えます。 |
現在のシステム全体のポリシーレベルを確認する方法
$ update-crypto-policies --show DEFAULT
システム全体のポリシーレベルを変更する方法
# update-crypto-policies --set LEGACY Setting system policy to LEGACY
システム全体のポリシーレベルを変更すると、すべてのアプリケーションに影響し、安全性が低下します。
このためアプリケーション単位やコマンド単位でポリシーレベルを変更したほうが良いです。
アプリケーションごとにポリシーレベルを変更する方法
アプリケーションごとの設定は、/etc/crypto-policies/back-ends ディレクトリに、各アプリケーション設定のシンボリックリンクが配置されています。
# ls -al /etc/crypto-policies/back-ends 合計 4 drwxr-xr-x. 2 root root 259 5月 4 08:07 . drwxr-xr-x. 6 root root 81 5月 4 08:07 .. lrwxrwxrwx. 1 root root 37 4月 14 11:22 .config -> /usr/share/crypto-policies/DEFAULT/.. lrwxrwxrwx 1 root root 43 5月 4 08:07 bind.config -> /usr/share/crypto-policies/DEFAULT/bind.txt lrwxrwxrwx 1 root root 45 5月 4 08:07 gnutls.config -> /usr/share/crypto-policies/DEFAULT/gnutls.txt lrwxrwxrwx 1 root root 43 5月 4 08:07 java.config -> /usr/share/crypto-policies/DEFAULT/java.txt lrwxrwxrwx 1 root root 43 5月 4 08:07 krb5.config -> /usr/share/crypto-policies/DEFAULT/krb5.txt lrwxrwxrwx 1 root root 48 5月 4 08:07 libreswan.config -> /usr/share/crypto-policies/DEFAULT/libreswan.txt lrwxrwxrwx 1 root root 45 5月 4 08:07 libssh.config -> /usr/share/crypto-policies/DEFAULT/libssh.txt -rw-r--r-- 1 root root 429 5月 4 08:07 nss.config lrwxrwxrwx 1 root root 46 5月 4 08:07 openssh.config -> /usr/share/crypto-policies/DEFAULT/openssh.txt lrwxrwxrwx 1 root root 52 5月 4 08:07 opensshserver.config -> /usr/share/crypto-policies/DEFAULT/opensshserver.txt lrwxrwxrwx 1 root root 46 5月 4 08:07 openssl.config -> /usr/share/crypto-policies/DEFAULT/openssl.txt lrwxrwxrwx 1 root root 49 5月 4 08:07 opensslcnf.config -> /usr/share/crypto-policies/DEFAULT/opensslcnf.txt
システム全体のポリシーレベルを変更するコマンドでは、実際にはこのシンボリックリンクを変更しています。
LEGACYに変更すると下記のように変わります。
# ls -al /etc/crypto-policies/back-ends 合計 4 drwxr-xr-x. 2 root root 259 5月 4 08:08 . drwxr-xr-x. 6 root root 81 5月 4 08:08 .. lrwxrwxrwx. 1 root root 37 4月 14 11:22 .config -> /usr/share/crypto-policies/DEFAULT/.. lrwxrwxrwx 1 root root 42 5月 4 08:08 bind.config -> /usr/share/crypto-policies/LEGACY/bind.txt lrwxrwxrwx 1 root root 44 5月 4 08:08 gnutls.config -> /usr/share/crypto-policies/LEGACY/gnutls.txt lrwxrwxrwx 1 root root 42 5月 4 08:08 java.config -> /usr/share/crypto-policies/LEGACY/java.txt lrwxrwxrwx 1 root root 42 5月 4 08:08 krb5.config -> /usr/share/crypto-policies/LEGACY/krb5.txt lrwxrwxrwx 1 root root 47 5月 4 08:08 libreswan.config -> /usr/share/crypto-policies/LEGACY/libreswan.txt lrwxrwxrwx 1 root root 44 5月 4 08:08 libssh.config -> /usr/share/crypto-policies/LEGACY/libssh.txt -rw-r--r-- 1 root root 458 5月 4 08:08 nss.config lrwxrwxrwx 1 root root 45 5月 4 08:08 openssh.config -> /usr/share/crypto-policies/LEGACY/openssh.txt lrwxrwxrwx 1 root root 51 5月 4 08:08 opensshserver.config -> /usr/share/crypto-policies/LEGACY/opensshserver.txt lrwxrwxrwx 1 root root 45 5月 4 08:08 openssl.config -> /usr/share/crypto-policies/LEGACY/openssl.txt lrwxrwxrwx 1 root root 48 5月 4 08:08 opensslcnf.config -> /usr/share/crypto-policies/LEGACY/opensslcnf.txt
アプリケーションごとのポリシーを変更するには、このシンボリックリンクを各レベルに変更するか、シンボリックリンク自体を削除します。
コマンド単位でポリシーレベルを変更する方法
wget では、--secure-protocol オプションおよび --ciphers オプションを使用します。
$ wget --secure-protocol=TLSv1_1 --ciphers="SECURE128" https://example.com
curl では、--ciphers オプションを使用して、その値に、コロンで区切った暗号化のリストを指定します。
$ curl https://example.com --ciphers '@SECLEVEL=0:DES-CBC3-SHA:RSA-DES-CBC3-SHA'
関連記事
- コマンドやプロセス名から検索して一括でkillする方法
- PostgreSQLでSCRAM authentication requires libpq version 10 or aboveと出るとき
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- SSDの現在のTBWを調べる方法 SSDの残り寿命 (Windows Linux CentOS)
- RAIDの種類
- ソフトウエアRAIDでストレージを構築しマウントする方法 ディスクの高速化・冗長化
- NTFSのディスクをLinuxにマウントすると読み込み専用でマウントされてしまう
- Ubuntu/Debian/Raspberry PiでChia Network(XCH)をHDDマイニングする方法
- CentOSでChia Network(XCH)をHDDマイニングする方法
- CentOSにHomeBridgeをインストールする方法
- Linux・WindowsでMTUを変更する方法(ジャンボフレーム)
- LinuxでPDFを画像に変換したりテキストを抽出する方法
- Logitec HDDケース(HDD4台用) ガチャベイ LHR-4BNHEU3 LGB-4BNHEU3
- Linuxにffmpegをインストールする方法 CentOS Stream
- SELinuxのpermissiveとdisableの違い
- SELinuxを無効にする方法
- SELinuxの管理で使用するsemanageコマンドをインストールする方法
- LinuxにImageMagickをインストールする方法 CentOS Stream
- Linuxでrarファイルを圧縮・解凍する方法(CentOS)
- NTFSフォーマットのストレージの読み書きが異常に遅い場合
- Linuxで接続されているUSBのバージョンを確認する方法
- Linuxでストレージの型番やシリアルを確認する方法(HDD SSD NVMe)
- CPUやストレージの温度を調べる方法(CPU HDD SSD NVMe)
- CentOS7からCentOS8へのアップグレード
- 各ストレージの速度一覧 規格速度や実効速度(HDD/SSD/M2/NVMe/USBメモリ)
- Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)
- マウントするときに、$MFTMirr does not match $MFT NTFS is either inconsistent, or there is a hardware faultのエラーが出る場合
- Sambaで認証パスワードなし(ゲストユーザー)でアクセスする方法
- Amazon Linux2をローカルのVirtualBoxで起動する方法
- VirtualBox Interfaceが起動していてシャットダウンができないとき
- Gitを自動的にpullする方法(常に最新の状態にする)
- Gitの最新版をインストールする方法(CentOS7に2系をインストール)
- SSHで初めて接続するホストで、接続するかどうかyes/noを聞かれないようにする
- HPのパソコンでVirtualBoxが起動しない(HP ProtectTools Security Manager)
- yumのius(iuscommunity.org)でエラーが出る場合
- iusリポジトリで公開されているパッケージの一覧
- GoogleChromeでSSL接続を強制される設定(HSTS)のキャッシュを消す方法
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- さくらサーバ(さくらのレンタルサーバ)でcronを使ってPHPを定時実行する
- php.ini が見つからない時
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- ホスト名(ドメイン)をローカルIPに名前解決させる方法(ローカルDNS不要)
- MySQLやMariaDBは標準ではログローテートされない
- SONYのnasneをLinuxにマウントする方法
- 数日おきに設定したcronの実行が1日ずれる理由
- LinuxでNTFS(Windows形式)のフォーマットをする方法
- target is busyやdevice is busyをumountする方法
- /dev/random と /dev/urandom の違い
- 2TBを超えるHDDを増設する方法(パーティション・フォーマット)
- 破損したストレージからのデータ復旧
- HDDやSSDなどのストレージをリスト形式で表示する方法
- blkidコマンドでUUIDが表示されない場合
- HDDやSSDなどのストレージのUUIDを調べる方法
- glibcを更新するとdateコマンドが新元号の令和に対応します
- cron設定ファイルの実体の保存先
- Fail2ban ログを集計して不正アクセスを防ぐ
- mvコマンドの挙動(コピーが完了したものから削除する方法)
- 『Table is marked as crashed and should be repaired』の修復方法
- PostfixサーバからGmailサーバへメールを送信できない場合の対処法
- ImageMagick更新で『PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so'』エラーが出る場合
- 起動時に『UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.』と出た場合の修復方法
- kernel-develのインストール
- LinuxサーバでWindowsのファイルシステムNTFSを読み込む方法
- 拡張リポジトリEPELを使用する方法(インストール)
- wgetが遅い場合の対処法
- WgetがFTPでダウンロードできない場合
- WgetがSSLでダウンロードできない場合
- Wgetの基本的な使い方など(ユーザーエージェントの設定・POSTデータの送信)
- lsコマンドで秒を表示する方法(タイムスタンプの書式指定)
- PDO_MYSQLをインストールする方法
- PEAR・PECLをインストールする方法
- シェルスクリプトを実行すると『そのようなファイルやディレクトリはありません』や『コマンドが見つかりません』と出る場合
- 画面のバックライトを消す方法(モニタ電源を消す) vbetool
- telnetの反応がなくなった時に接続を強制的に切断する方法
- サーバの負荷や使用率などを見るコマンドの一覧
- PHPでロードアベレージを表示させる方法
- Apacheで出力されるログを変更する方法 レスポンスにかかった時間やリファラ、ユーザーエージェントを記録する
- ログをリアルタイムに表示させて監視する方法
- 起動時にネットワークを有効にする方法(eth0を起動する方法)
- IPアドレスを変更する方法
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- Linux起動時の自動ファイルシステムチェックの間隔を変更する、無効にする方法
- [warn] _default_ VirtualHost overlap on port 80, the first has precedence エラー
- yumでupdateするときにconflictsエラーが出る場合 file xxx from install of xxx-jason conflicts with file from package xx.remi
- Gitをyumでインストールする方法
- vsftpdでファイルの所有者をUID(数字)ではなくユーザー名で表示する方法 chrootするとtext_userdb_names=YESできない
- SELinuxが有効になっているサーバではvsftpdのデータ転送が使用できない
- サービスに接続できるユーザー(IP)を制限する Connection closed by foreign host.
- 1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法(Linux)
- Apacheを起動するときに、ほかのプロセスによってポートが使用されていた場合
- PEARを更新する方法
- zend_mm_heap corrupted とは
- yum コマンドでTransaction Check Error
- yumを自動で更新チェックする、自動で更新する
- httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
- Apacheをyumでインストールする
- KNOPPIX
- ディレクトリ以下のファイル数、ファイル容量を調べる
- PHPをyumでインストールする
- Linuxでホスト名を変更する方法
- Postfixからpostmaster宛に451Server configuration errorメールが届く
- Postfixの容量制限 (main.cfの設定)
- Debianのインストール
- memcachedのインストール
- Linuxのカーネル情報やディストリビューションを調べるコマンド
- Rubyのインストール
- PostgreSQLのインストール
- PHPのインストール
- zlibのインストール
- Apacheのインストール
- MySQLのインストール
- IPアドレスを調べる
- ファイルを検索するコマンド locate (updatedbの高速化)
- スペシャルファイル
- MergeLog 複数のログファイルを時系列に並べ替える
- CentOS5のインストール
- Another app is currently holding the yum lockとは
- yumで、より新しいパッケージをインストールする方法(CentOS)
- apacheのSSL設定
- Subversionのインストール
- 毎朝午前4時に行われる動作
- /tmpや/var/tmpのファイル消えるタイミング
- ユーザーとグループ
- ログインできるユーザーに変更する
- SSHのインストール
- OpenSSL
- RFC2142で定められた「組織で用意したほうがよいメールアドレス」のガイドライン
- named.local [Bindの設定ファイル]のデフォルト
- localhost.zone [Bindの設定ファイル]のデフォルト
- named.ca [Bindの設定ファイル]のデフォルト
- named.conf [Bindの設定ファイル]のデフォルト
- vsftpd.conf [vsftpd設定ファイル]のデフォルト
- proftpd.conf [Proftpd設定ファイル]のデフォルト
- php.ini [PHP設定ファイル]のデフォルト
- main.cf [Postfix設定ファイル]のデフォルト
- sendmail.mc のデフォルト
- httpd.conf [apache設定ファイル]のデフォルト fedora
- httpd.conf [apache設定ファイル]のデフォルト
- ディレクトリの削除
スポンサーリンク