Php 用于通配符vhost的Apache通配符SSL证书,并专门命名为vhost
我们正在运行一个PHP站点,该站点为我们的客户使用自定义子域,因此我们在Apache(版本2.2.3)中使用通配符VHost实现了一个通配符SSL证书。这些子域PHPWeb应用程序还利用一个反向代理,在REST和RPC API的两个URL前缀后面创建一个金字塔web应用程序 我们还有一个在金字塔上运行的管理界面。我们通常会简单地将代理反向到管理接口,但我似乎无法为这两个虚拟主机使用通配符SSL证书。我做错了什么 这是我们的vhost配置:Php 用于通配符vhost的Apache通配符SSL证书,并专门命名为vhost,php,python,ssl,apache,Php,Python,Ssl,Apache,我们正在运行一个PHP站点,该站点为我们的客户使用自定义子域,因此我们在Apache(版本2.2.3)中使用通配符VHost实现了一个通配符SSL证书。这些子域PHPWeb应用程序还利用一个反向代理,在REST和RPC API的两个URL前缀后面创建一个金字塔web应用程序 我们还有一个在金字塔上运行的管理界面。我们通常会简单地将代理反向到管理接口,但我似乎无法为这两个虚拟主机使用通配符SSL证书。我做错了什么 这是我们的vhost配置: NameVirtualHost *:443 <V
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>
NameVirtualHost*:443
ServerName example.com
ServerAlias*.example.com
DocumentRoot/var/www/html/example/current/www
错误日志/wild-example.com-SSL-error\u日志
CustomLog日志/wild-example.com-SSL-access\u日志组合
斯伦金安
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
DirectoryIndex.php
选项如下符号链接
允许超越所有
代理请求
代理主机
命令拒绝,允许
通融
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/
ServerName example.com
ServerAlias admin.example.com
DocumentRoot/var/www/html/example/current/www
错误日志/admin-example.com-SSL-error\u日志
CustomLog日志/admin-example.com-SSL-access\u日志组合
斯伦金安
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
DirectoryIndex.php
选项如下符号链接
允许超越所有
代理请求
代理主机
命令拒绝,允许
通融
ProxyPass/http://127.0.0.1:6542/
ProxyPassReverse/http://127.0.0.1:6542/
您是否在我们可以看到的ssl\u错误日志中收到错误消息?您应该能够只复制主vhost并将其设置为特定子域vhost
事实上,您最初的*.example.com应该只覆盖任何子域。我认为,如果您只需将新子域指定为常规端口80 vhost,然后访问位于的站点,它应该受到保护。删除以下行:
ServerAlias *.example.com
在第二个VirtualHost部分中,更改服务器名称:
ServerName admin.example.com
拳头*。陷阱admin.example.com在第一个VirtualHost部分。您也不希望两者都定义相同的VirtualHost(example.com)。每个子域的ServerName需要不同 它怎么不起作用?我从个人经验中知道,在使用通配符时,Apache对vhost定义的顺序非常敏感。在.conf加载层次结构中,通配符通常排在最后。