2013-02-12 122 views
0

我将Apache设置为反向代理,使https访问托管在我们Intranet上的服务。Apache httpd虚拟主机SSL证书

Apache httpd正在运行,并且我已经设置了如下的虚拟主机。

NameVirtualHost *:443 

<VirtualHost *:443> 
    ServerName my.domain.com 

    SSLEngine On 
    SSLCertificateFile /etc/pki/tls/certs/my.domain.com.crt 
    SSLCertificateKeyFile /etc/pki/tls/private/mykey.key 

    ProxyPreserveHost On 
    ProxyPass/http://128.0.0.120:8083/ 
    ProxyPassReverse/http://128.0.0.120:8083/ 

</VirtualHost> 

我已经生成的自签名证书,并放置在文件/ etc/PLI/TLS /证书/ ......如上,但是当我浏览这个网页,我是了解的机器名称的自签名证书,而不是VirtualHost中指定的证书。机器名称的证书包含在/etc/httpd/conf.d/ssl.conf的行SSLCertificateFile /etc/pki/tls/certs/localhost.crt中,全部位于<VirtualHost _default_:443>部分。

我期待我的更具体的VirtualHost覆盖默认设置,但它似乎并非如此。我应该怎么做才能正确覆盖SSLCertificateFile指令。

感谢

回答

3

为了让您的配置为你想让它,你需要在服务器和客户端支持服务器名称指示工作。请参阅:

https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

+1

谢谢,看起来像我需要的东西。不幸的是,我在RHEL 5.2上,yum安装了Apache httpd的2.2.3版本。我认为我们会转向6.3,所以一旦我有了新的环境,就会做出这些改变。 – jasg 2013-02-12 11:37:12