CentOS 8 -> CentOS 5.x へのSSLリバースプロキシで発生するdh key too smallエラーの回避方法

日付 2020.01.25
タイトル CentOS 8 -> CentOS 5.x へのSSLリバースプロキシで発生するdh key too smallエラーの回避方法
本文
CentOS 5.xで動作しているサイトをSSLリバースプロキシで保護する必要があり、CentOS 8のホストを設置したところ、dh key too smallというエラーが出て動作しませんでした。
これを回避する設定を模索したところ、以下の設定で通信できたのでメモしておきます。


仮に、以下のホストがCentOS 5.x系統だったとして、
-----
virtual host : example.com
ipaddr : 1.2.3.4
-----

CentOS 8側の設定を以下のようにしました。
-----
<ifModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>

<VirtualHost *:80>
ServerName example.com:80

ProxyPass / http://1.2.3.4/
ProxyPassReverse / http://1.2.3.4/
</VirtualHost>

<VirtualHost *:443>
ServerName example.com:443

SSLEngine on
SSLProxyEngine on

# ユーザ側にはTLS 1.2以上で応答します
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
# CentOS 5.x側にはTLS 1.0(SSL 3)でリクエスト転送します
SSLProxyProtocol TLSv1
SSLProxyVerify none

# ユーザへの応答はできる限り強めの暗号化で
#SSLCipherSuite PROFILE=SYSTEM
SSLCipherSuite HIGH:MEDIUM:!aNULL:!SSLv2:!SSLv3:!TLSv1:!RC4:!DH
# CentOS 5.x側には通信できるギリギリまで下げます
#SSLProxyCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite ALL:!EXP:!NULL:!DH:!LOW

SSLCompression off
SSLHonorCipherOrder on
SSLOptions +StrictRequire

SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCACertificateFile /etc/pki/tls/certs/ca-chain.crt

# SSL->SSLで同一ホスト名をキープする場合、ONにする
# あるいは別ホスト名をつけられるならipaddrでのアクセスをホスト名にする
ProxyPreserveHost On
ProxyPass / https://1.2.3.4/
ProxyPassReverse / https://1.1.3.4/
</VirtualHost>
</ifModule>
-----

お役に立てば。