用于通配符vhost的Apache通配符SSL证书,特别是指定的vhos

2024-06-16 11:10:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在运行一个PHP站点,它为我们的客户使用自定义子域,因此我们在Apache(版本2.2.3)中实现了一个通配符SSL证书。这些子域phpweb应用程序还利用了一个反向代理,在REST和rpcapi的两个URL前缀后面创建了一个金字塔网络应用程序。在

我们还有一个在金字塔上运行的管理界面。我们通常只需将代理反向转换到管理接口,但我似乎不能为这两个虚拟主机使用通配符SSL证书。我做错什么了?在

这是我们的主机配置:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName example.com
    ServerAlias *.example.com
    DocumentRoot /var/www/html/example/current/www
    ErrorLog logs/wild-example.com-SSL-error_log
    CustomLog logs/wild-example.com-SSL-access_log combined
    SSLEngine On
    SSLCertificateFile /etc/pki/tls/certs/star_example.com.2012.crt
    SSLCertificateKeyFile /etc/pki/tls/private/star_example.com.key
    SSLCACertificateFile /etc/pki/tls/certs/NetworkSolutions_CA.2012.crt
    <Directory /var/www/html/example/current/www>
        DirectoryIndex index.php
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    ProxyRequests On
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass /restapi/ http://127.0.0.1:6543/restapi/
    ProxyPassReverse /restapi/ http://127.0.0.1:6543/restapi/
    ProxyPass /rpcapi/ http://127.0.0.1:6543/rpcapi/
    ProxyPassReverse /rpcapi/ http://127.0.0.1:6543/rpcapi/
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias admin.example.com
    DocumentRoot /var/www/html/example/current/www
    ErrorLog logs/admin-example.com-SSL-error_log
    CustomLog logs/admin-example.com-SSL-access_log combined
    SSLEngine On
    SSLCertificateFile /etc/pki/tls/certs/star_example.com.2012.crt
    SSLCertificateKeyFile /etc/pki/tls/private/star_example.com.key
    SSLCACertificateFile /etc/pki/tls/certs/NetworkSolutions_CA.2012.crt
    <Directory /var/www/html/example/current/www>
        DirectoryIndex index.php
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    ProxyRequests On
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://127.0.0.1:6542/
    ProxyPassReverse / http://127.0.0.1:6542/
</VirtualHost>

Tags: comhttpsslonexamplevarhtmlwww
2条回答

删除以下行:

    ServerAlias *.example.com

在第二个VirtualHost部分,更改ServerName:

^{pr2}$

拳头*。陷阱admin.example.com在第一个虚拟主机部分。你也不希望他们都定义同一个虚拟主机(example.com网站). 每个子域的ServerName必须不同。在

您是否在ssl\u错误日志中看到错误消息?你应该能够只复制主vhost并将其设置为一个特定的子域vhost。在

事实上,你原来的*。example.com网站东西应该只覆盖任何子域。我认为如果您只需将新的子域指定为常规端口80vhost,然后访问位于https://admin.example.com的站点,它应该受到保护。在

相关问题 更多 >