繁体   English   中英

配置安全的SSL Apache代理

[英]configure secure SSL Apache proxy

我正在尝试使用apache建立代理安装程序,该安装程序始终完全支持SSL:

Client   <-->   Proxy @ somehostname.com   <-->   Server @ 123.45.67.89

请注意,我的代理服务器具有主机名,但是远程服务器没有。 客户端和代理之间的SSL设置可以与letencrypt设置一起正常工作。 但是,我正在努力确保代理与远程服务器之间的连接安全。

因为远程服务器没有主机名,而且letencrypt并不只为IP颁发证书,所以我的想法是生成一个自签名证书,并将证书复制到代理中以仅信任该证书。 不幸的是我不知道如何。

如果我只是禁用这些证书检查,则连接有效,因为代理仅信任每个证书:

SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

虽然加密可以正常工作,但据我所知,真实性受到了损害,并且在握手期间我会遭受MitM攻击。 这是不理想的。

相反,我已指示Apache信任我的自签名证书

SSLProxyCACertificateFile /path/to/cert.pem

然后尝试强制使用有效的证书

SSLProxyVerify require

但是尽管我明确列出了证书,并且SSLProxyCACertificateFile的文档说“这些用于远程服务器身份验证”,但似乎并不信任它。

有没有办法确保代理和远程服务器之间的连接是安全的,例如通过强制Apache始终使用该特定证书来连接到代理?

事实证明,通过SSLProxyCACertificateFile添加证书不会跳过名称检查,这很有意义。 因此,为了使自定义证书起作用,仍然需要将其颁发给正确的名称,或者以我的情况为IP。 在为该IP颁发了新证书之后,我的配置现在可以正常工作。 以下是相关部分:

<VirtualHost *:443>
    ServerName somehostname.com
    SSLProxyEngine On
    SSLProxyVerify require
    SSLProxyCACertificateFile /path/to/custom_cert.pem
    SSLProxyCheckPeerCN on  # or omit, default is on
    SSLProxyCheckPeerName on  # same
    ProxyPass / https://123.45.67.89/
    ProxyPassReverse / https://123.45.67.89/
</VirtualHost>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM