首页 文章

Apache反向代理背后的自签名证书问题?

提问于
浏览
6

我理解这个主题在几篇较旧的帖子中进行了讨论,尤其是@Ryan发布的Will a self-signed certificate work behind an Apache reverse-proxy?

我面临同样的问题,但无法绕过它 . 我在Apache HTTP服务器前面将Apache 2.4.12设置为反向代理 . 我在代理服务器上有有效的证书,但在Oracle HTTP服务器上有自签名的证书 . 目标是一直执行https,但是每当浏览器到达myhost.domain时,它都会抛出一个证书警告(因为自签名证书) . 在Oracle HTTP服务器上拥有正式证书不是一种选择,用户浏览器受到限制,因此无法忽略自签名证书警告 .

这是我的虚拟主机


LogLevel ERROR
ServerName  myhost.domain
ServerAlias  xxx.xxx.xxx.xx
DocumentRoot D:/xyz/pubdocs
SSLEngine      On
SSLProxyEngine On
SSLCertificateFile      certs/myserver.crt
SSLCertificateKeyFile   certs/myserver.key
SSLCertificateChainFile certs/myserver_chain.crt
SSLProxyCACertificateFile certs/my_self_signed.pem
SSLProxyVerify none
SSLProxyCheckPeerName off
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
SSLProtocol    -all +TLSv1
SSLProxyProtocol +SSLv3 +TLSv1 +TLSv1.1
#SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!NULL:RC4+RSA:+HIGH:+MEDIUM
ErrorLog "logs/abc-error.log"
CustomLog "logs/abc-access.log" cert

ProxyRequests Off  
# IE compatibility
Header set X-UA-Compatible "IE=EmulateIE8"
# Prevent page from being loaded within an IFrame (Cross-Frame Scripting protection)
Header always append X-Frame-Options SAMEORIGIN
# Prevent mime sniffing exploint ; disabled breaks PEM Popup image rendering
# Header set X-Content-Type-Options: nosniff
# Disable caching
Header set Cache-Control "no-cache, must-revalidate, private"
# Enable X-XSS-Protection
Header set X-XSS-Protection: "1; mode=block"
ProxyPass / https://myhost.domain/
ProxyPassReverse / https://myhost.domain/

似乎使用以下指令适用于许多人,但似乎并不适合我

SSLProxyVerify无

SSLProxyCheckPeerName关闭

SSLProxyCheckPeerCN关闭

SSLProxyCheckPeerExpire off

还有什么我想念的吗?

任何帮助表示赞赏 .

谢谢,拉吉

1 回答

  • 0

    似乎错误与代理并不完全相关 . 配置并不完全清楚 . 我假设有以下三台机器:

    'laptop' - 你'代理' - 你的conf的apache正在运行'oracle' - 带有一些任意的webserver

    我还假设所有DNS域都以“代理”为目标,其余机器由IP地址访问 .

    您从浏览器看到的认证路径仅在“笔记本电脑”和“代理”之间 . 如果您看到来自浏览器的无效证书,那么“代理”无法对“笔记本电脑”进行身份验证 . 如果'oracle'无法向'proxy'标识自己,则连接将彻底失败,抛出502错误 .

    那么现在,下一步做什么:

    从浏览器中检查证书 . 看看它是谁的证书 . 如果它来自'oracle',则意味着您根本不代理请求 . 确保您的DNS记录针对“代理”计算机 . 如果它来自'代理',但浏览器适合错误的CN,则需要创建包含'oracle'域的证书并将其放在'代理'机器上 .

    如果它都不起作用,请尝试调查以下方案失败的时间点:

    笔记本电脑要求DNS'oracle.domain.com'DNS返回'代理'机器的IP地址并发送请求 . 'proxy'作为'oracle.domain.com'服务的提供者向您进行身份验证此时您将在浏览器中获得绿色锁定图标 . 'proxy'机器解析'oracle'的IP地址并发送请求 . 'oracle'对'proxy'进行身份验证,自签名证书内容从'oracle'通过'proxy'返回给你 .

    此外,您应该包含' SSLProxyVerify require ',以使您的配置至少有点安全 .

相关问题