Apache - 使用 SSLProxyProtocol 禁用 SSLv3 - 不工作

标签 apache ssl proxy sslv3

标题

Apache /2.2.31 (Unix)

我在许多虚拟主机部分之外有以下 SSL 配置:

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1 -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCompression Off
SSLCipherSuite "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA25$
SSLProxyProtocol +TLSv1.2 -SSLv2 -SSLv3

然后我有一个具有以下代理配置的虚拟主机:

RewriteEngine On
SSLProxyEngine On
RewriteCond %{QUERY_STRING} !(^|&)requestOrigin=apiGateway($|&) [NC]
RewriteRule ^/portal/mobile/stores$ https://xxx.execute-api.eu-west-1.amazonaws.com/test/stores [QSA,P,L]

如您所见,我重写了将原始请求代理到 Amazon API 网关的规则。 Amazon API 网关不支持 SSLv3,这就是我在上述配置中禁用它的原因。我希望使用 TLSv1.2 进行代理。

但是,在我禁用 SSL 的上面配置的 apache 仍然使用 SSL 连接到亚马逊。请参阅下面的调试输出:

[debug] ssl_engine_io.c(1090): [client XXX.XXX.XXX.XXX] SNI extension for SSL Proxy request set to 'example.com'
[debug] ssl_engine_kernel.c(1834): OpenSSL: Handshake: start
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: before/connect initialization
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write client hello A
[debug] ssl_engine_io.c(1939): OpenSSL: read 5/5 bytes from BIO#10c87d0 [mem: 10cttb3] (BIO dump follows)
[debug] ssl_engine_io.c(1872): +-------------------------------------------------------------------------+
[debug] ssl_engine_io.c(1911): | 0000: 16 02 02 00 02                                   .....            |
[debug] ssl_engine_io.c(1917): +-------------------------------------------------------------------------+
[debug] ssl_engine_io.c(1939): OpenSSL: read 2/2 bytes from BIO#10c87d0 [mem: 10c44b8] (BIO dump follows)
[debug] ssl_engine_io.c(1872): +-------------------------------------------------------------------------+
[debug] ssl_engine_io.c(1911): | 0000: 02 38                                            .(               |
[debug] ssl_engine_io.c(1917): +-------------------------------------------------------------------------+
[debug] ssl_engine_kernel.c(1847): OpenSSL: Read: SSLv3 read server hello A
[debug] ssl_engine_kernel.c(1866): OpenSSL: Exit: failed in SSLv3 read server hello A
[info] [client XXX.XXX.XXX.XXX] SSL Proxy connect failed

为什么 apache 代理仍然使用 SSL3 进行代理?我怎样才能一劳永逸地禁用它?

最佳答案

尝试改变

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1 -SSLv2 -SSLv3

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

和改变

SSLProxyProtocol +TLSv1.2 -SSLv2 -SSLv3

SSLProxyProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

关于Apache - 使用 SSLProxyProtocol 禁用 SSLv3 - 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386827/

相关文章:

C# 结合 GeckoFX + Tor.NET 库

python - Django 代理模型返回父模型

git 和 "Server aborted the SSL handshake"错误

java - Spring Async - 无法获取异步bean

java - Lucene 中的术语文档矩阵

java - 从 SOAP wsdl 生成客户端 jar

ssl - libgnutls版本与协议(protocol)标准对应关系

apache - 无法使用 SSL 登录 GeoServer 2.19

php - 与 Apache/PHP/Javascript 的长期连接(异步服务器推送)?

php exec() 错误...有人知道这是什么意思吗?