Apacheで逆プロキシを使用してAWS APIGateway URLを前面に表示します。理由は、厳格なファイアウォールの背後にサービスをプロビジョニングするために静的IPを必要とするプロセスと、現在のインフラストラクチャにmod_proxyが既に存在するためです。私が実装しようとしている解決策は、単にhttps-> https(apiGateway)をmod_proxy経由でルーティングすることです。Apache ProxyPass HTTPSとSNIを使用したリモートサーバ
AWSはSNIを使用しており、mod_proxyをハンドシェイクすることはできません。
私は次の設定が次のログは、私はOpenSSLを使用して接続した場合、私は
openssl s_client -tls1_2 -connect xxx.execute-api.eu-west-
1.amazonaws.com:443
CONNECTED(00000003)
140735866254216:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert
handshake failure:s3_pkt.c:1494:SSL alert number 40
140735866254216:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:
同様のエラーを示すことができるデバッグモードで
proxy_util.c(2020): AH00942: HTTPS: has acquired connection for (xxx.execute-api.eu-west-1.amazonaws.com)
proxy_util.c(2610): AH00962: HTTPS: connection complete to 52.x.x.x:443 (xxx.execute-api.eu-west-1.amazonaws.com)
AH01964: Connection to child 0 established (server domain.com:443)
AH02003: SSL Proxy connect failed
SSL Library Error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
AH01998: Connection closed to child 0 with abortive shutdown (server domain.com:443)
AH01997: SSL handshake failed: sending 502
可能です
<IfModule mod_ssl.c>
<VirtualHost *:443>
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass /api/1_0/ https://xxx.execute-api.eu-west-1.amazonaws.com/1_0/
ProxyPassReverse /api/1_0/ https://xxx.execute-api.eu-west-1.amazonaws.com/1_0/
を有効にしています
SNIの-servernameを追加すると、有効な接続になります
SSL handshake has read 3601 bytes and written 489 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
...
したがって、mod_proxyとmod_sslはサーバー名をリモートhttpsサーバーに送信しておらず、バグかもしれないと考えています。
私は ServerバージョンでのUbuntu 14.04を実行しています:Apacheの/ 2.4.7(Ubuntuの) Serverが構築された:私がしようとしてきた2017年9月18日午後四時37分54秒 のOpenSSL 1.0.1f 2014年1月6日
をSSLProxyProtocol
をTLS1_2に制限し、暗号リストも制限しますが、sslv3アラートハンドシェイクの失敗ログは依然として存在します。
誰もがこれを遭遇し、SNI値が送信されていることを確認する方法を知っていますか、これはApacheモジュールの制限ですか?