我正在尝试使用Apache建立反向代理设置,确保SSL全程安全支持:
Client <--> Proxy @ somehostname.com <--> Server @ 123.45.67.89
请注意,我的代理服务器有一个主机名,但远程服务器没有。使用letsencrypt设置客户端和代理之间的SSL连接正常工作。然而,我正在努力保护代理和远程服务器之间的连接。
由于远程服务器没有主机名,并且letsencrypt不为IP颁发证书,因此我的想法是生成自签名证书并将证书复制到代理以仅信任该证书。不幸的是,我不知道如何操作。
如果我只禁用这些证书检查,连接就会起作用,因为代理会相信每个证书。
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
虽然加密功能可以正常工作,但据我了解,真实性会受到威胁,在握手期间容易遭受中间人攻击。这不是理想的情况。
相反,我已经指示Apache信任我的自签名证书:
SSLProxyCACertificateFile /path/to/cert.pem
然后尝试使用有效的证书进行强制执行
SSLProxyVerify require
尽管我明确列出了证书,并且 SSLProxyCACertificateFile
文档中也指出“这些用于远程服务器身份验证”,但似乎它并不信任它。
是否有办法确保代理和远程服务器之间的连接是安全的,例如通过强制Apache始终使用特定证书连接到代理?