Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于通配符vhost的Apache通配符SSL证书,并专门命名为vhost_Php_Python_Ssl_Apache - Fatal编程技术网

Php 用于通配符vhost的Apache通配符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

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

我们还有一个在金字塔上运行的管理界面。我们通常会简单地将代理反向到管理接口,但我似乎无法为这两个虚拟主机使用通配符SSL证书。我做错了什么

这是我们的vhost配置:

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加载层次结构中,通配符通常排在最后。