【发布时间】:2020-01-07 05:51:58
【问题描述】:
我们的一个客户想要通过他的服务器运行一个网站到我们的网络服务器,所以该网站有他的服务器的公共 IP,而不是我们的。这在 http 上运行良好,但在 https 上一切都变得疯狂。
客户端的服务器使用 Apache 运行 Virtualmin,我们的服务器使用 php-fpm 运行 Nginx。我们尝试为客户端服务器和我们的网络服务器设置相同的证书,但此站点一直显示握手错误。
两台服务器使用完全相同的证书。
客户的 Apache 配置:
ProxyPass / http://1.2.3.4:8123/
ProxyPassReverse / http://1.2.3.4:8123/
SSLProxyEngine on
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
SSLEngine on
SSLCertificateFile /foo/bar/ssl.cert
SSLCertificateKeyFile /foo/bar/ssl.key
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCACertificateFile /foo/bar/ssl.ca
我们的 Nginx 配置:
server {
listen 8123;
server_name some.site wwww.some.site;
ssl_certificate /foo/bar/ssl.crt;
ssl_certificate_key /foo/bar/ssl.crt
ssl_prefer_server_ciphers on;
root /var/www/some.site/public;
index index.php;
charset utf-8;
location ~ /\. {
deny all;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
}
}
我们希望它能够正常工作,以便我们可以使用 https://1.2.3.4:8123/ 作为代理地址,以避免 MITM 攻击并能够通过 https://some.site 为网站提供服务。
【问题讨论】: