php - Apache wildcard SSL cert for wildcard vhost and specifically named vhost

标签 php python ssl apache

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

我们还有一个在 Pyramid 上运行的管理界面。我们通常会简单地反向代理到管理界面,但我似乎无法为这两个虚拟主机使用通配符 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>

最佳答案

您是否在我们可以看到的 ssl_error 日志中收到错误消息?您应该能够只复制主虚拟主机并将其设置为特定的子域虚拟主机。

事实上,您原来的 *.example.com 内容应该只涵盖任何子域。我认为如果您只是将新子域指定为常规端口 80 虚拟主机,然后访问位于 https://admin.example.com 的站点,它应该受到保护。

关于php - Apache wildcard SSL cert for wildcard vhost and specifically named vhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083441/

相关文章:

python - 在 Django 中运行 Discord 机器人

python - 无法在cygwin中使用python的pexpect

ssl - 将证书添加到信任库以启用 SSL 通信

php - 为什么会出现错误 "expected to be a reference, value given"?

java - 无法将数据从android插入到MySQL

python - 比较元素并返回大于随机数的值作为 true

ssl - Liferay 使用 http 和 https

python - django-social-auth - 缺少 HTTPSConnection

php - 如何计算净现值

php - 我的 godaddy 帐户上有一个带有 proxy.php 文件的神秘 dbboon 文件夹