用ssl在apacheconfiguration几个站点

我需要在Apache中确保两个不同的网站。 其中之一应该只是代理端口8069上运行的不同服务器。

现在一个(本来就包含在apache中的)运行SSL:

<VirtualHost *:443> ServerName 192.168.1.20 SSLEngine on SSLCertificateFile /etc/ssl/erp/oeserver.crt SSLCertificateKeyFile /etc/ssl/erp/oeserver.key DocumentRoot /var/www/cloud ServerPath /cloud/ #CustomLog /var/www/logs/ssl-access_log combined #ErrorLog /var/www/logs/ssl-error_log </VirtualHost> 

另一个没有运行,甚至没有注册。 当我尝试访问它时,我收到一个exception(ssl_error_rx_record_too_long):

 <VirtualHost *:443> ServerName 192.168.1.20 ServerPath /erp/ SSLEngine on SSLCertificateFile /etc/ssl/erp/oeserver.crt SSLCertificateKeyFile /etc/ssl/erp/oeserver.key ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyVia On ProxyPass / http://127.0.0.1:8069/ ProxyPassReverse / http://127.0.0.1:8069 RewriteEngine on RewriteRule ^/(.*) http://127.0.0.1:8069/$1 [P] RequestHeader set "X-Forwarded-Proto" "https" SetEnv proxy-nokeepalive 1 </VirtualHost> 

我的意思是以下configuration

 192.168.1.20 ->> unsecured local path to website 192.168.1.20/cloud/ ->> secured local documentpath from cloud 192.168.1.20/erp/ ->> secured proxy on port 80 for http://192.168.1.20:8069 

这怎么可能? 这甚至有可能吗? 也许cloud.192.168.1.20和erp.192.168.1.20更好?!

谢谢============编辑========================== apache2ctl -S -M:*:443是一个NameVirtualHost默认服务器myserver(/etc/apache2/conf.d/cloud.conf:1)port 443 namevhost myserver(/etc/apache2/conf.d/cloud.conf:1)*:80是一个NameVirtualHost默认服务器myserver(/ etc / apache2 / sites-enabled / default:1)端口80 namevhost myserver(/ etc / apache2 / sites-enabled / default:1)

默认:

 <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

修改(当前)cloud.conf:

 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/openerp/oeserver.crt SSLCertificateKeyFile /etc/ssl/openerp/oeserver.key DocumentRoot /var/www/ RewriteCond {REQUEST_URI} ^/cloud$ RewriteEngine on RewriteRule /(.*) http://127.0.0.1:8069/$1 [P] RequestHeader set "X-Forwarded-Proto" "https" SetEnv proxy-nokeepalive 1 </VirtualHost> 

你不能有

 <VirtualHost *:443> ServerName 192.168.1.20 SSLEngine on 

2次,因为Apache将只绑定到一个虚拟主机。

为什么不包括/地点/一个configuration?

 <VirtualHost *:443> ServerName 192.168.1.20 SSLEngine on SSLCertificateFile /etc/ssl/erp/oeserver.crt SSLCertificateKeyFile /etc/ssl/erp/oeserver.key DocumentRoot /var/www/cloud <Directory /var/www/cloud> blah </Directory> # erp-config # ... proxy_config .... ProxyPass /erp http://127.0.0.1:8069/ proxyPassReverse /erp http://127.0.0.1:8069/ </VirtualHost> 

EDIT2

另一种方式是两个独立的<VirtualHosts> – configuration,可以是基于名称(一个IP,SNI必须可用)或基于IP(每个主机一个IP,通常工作)