我有2个服务器:app1.example.biz&app2.example.biz我需要做以下使用apache2作为反向代理redirect来自互联网的所有stream量到适当的服务器和使用ssl。 我所做的configuration允许我将app1.example.bizredirect到https app1.example.biz,我可以访问服务器。 问题是,我不能做同样的app2.example.biz,当我键入app2.example.biz它redirect到https app1.example.biz! PS:我不能发布超过两个超链接,因为我是一个新用户,但我的configuration是正确的。
<VirtualHost *:80> ServerName app1.example.biz/ Redirect / https app1.example.biz/ </VirtualHost> <VirtualHost *:443> ServerName app1.example.biz ServerAlias app1.example.biz ProxyPass / http app1.example.biz/ ProxyPassReverse / http app1.example.biz/ SSLEngine on SSLCertificateFile /etc/ssl/servwiki.crt SSLCertificateKeyFile /etc/ssl/servwiki.key SSLVerifyClient none </VirtualHost> #<VirtualHost *> # ServerName app2.example.biz/ # Redirect / https app2.example.biz/ #</VirtualHost> <VirtualHost *> ProxyPreserveHost On ServerName app2.example.biz ServerAlias app2.example.biz ProxyPass / http app2.example.biz/ ProxyPassReverse / http app2.example.biz/ SSLEngine on SSLCertificateFile /etc/ssl/servwiki.crt SSLCertificateKeyFile /etc/ssl/servwiki.key SSLVerifyClient none </VirtualHost>
我试过:1 /使用NameVirtualHost:80&NameVirtualHost:443 2 /命名每个虚拟主机像这样3 /添加
<VirtualHost *> ServerName www.example.biz DocumentRoot /usr/local/apache/htdocs #SSLEngine on #SSLCertificateFile /etc/ssl/servwiki.crt #SLCertificateKeyFile /etc/ssl/servwiki.key #SSLVerifyClient none </VirtualHost>
这解决了http app1.example.biz&http app2.example.bizredirect到相应的服务器的问题,但它没有用ssl!
plzzzzz帮助
大概,你错过了:443你的第二个虚拟主机configuration:443 (我不确定这是否只是一个复制/粘贴错误在这里)。
您将要面对的下一个问题是您将需要能够处理SSL / TLS上的多个主机。 为此, 在发送任何HTTP请求/响应之前 ,您需要服务器在SSL / TLS握手期间为该主机名显示有效的证书。 可以使用以下技术之一来完成:
app1.example.biz和app2.example.biz )(有时称为UCC)或通配符证书(例如*.example.biz ,但不鼓励使用它们)的证书来实现。 NameVirtualHost进行HTTPS,而是在每个虚拟主机条目中设置IP地址,并使用其证书configuration每个虚拟主机部分。