启用 SSL 后虚拟主机被禁止

启用 SSL 后虚拟主机被禁止

我为我的 wamp64 服务器启用了 SSL,一切运行正常http://本地主机/https://本地主机/

但是我没有允许它查看本地主机 - 我需要为我的 1 个虚拟主机激活:

<VirtualHost *:443>
    DocumentRoot "D:/DEV/www/app/public/"
    ServerName dev.app.com:443
    ServerAdmin admin@localhost
    ErrorLog "D:/wamp64/www/ssllogs/ssl_error.log"
    TransferLog "D:/wamp64/www/ssllogs/ssl_access.log"
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "D:/wamp64/ssl.crt/server.crt"
    SSLCertificateKeyFile "D:/wamp64/ssl.key/server.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    <Directory "D:/DEV/www/app/public">
        SSLOptions +StdEnvVars
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>

    BrowserMatch ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    CustomLog "D:/wamp64/www/ssllogs/ssl_request.log" \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

当然,httpd-vhosts.conf 中仍然有这个

<VirtualHost *:80>
    ServerName dev.app.com
    DocumentRoot d:/dev/www/app/public
    <Directory  "d:/dev/www/app/public/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

现在,该http版本运行良好,但是https给我:

Forbidden

You don't have permission to access / on this server.
Apache/2.4.17 (Win64) OpenSSL/1.0.2h PHP/5.6.16 Server at dev.app.com Port 443

知道是什么问题吗?

答案1

<VirtualHost *:443>* 匹配所有内容 - 它是一个通配符

您不应该在虚拟主机中包含端口,您已经设置好了。

ServerName dev.app.com:443

应该

ServerName dev.app.com

您无权访问此服务器上的 /。Apache/2.4.17 (Win64) OpenSSL/1.0.2h PHP/5.6.16 服务器位于 dev.app.com 端口 443

这是语法错误的结果 - Apache 2.4 的语法已更改

Order deny,allow
Allow from all

变成

Require all granted

请参阅此处了解访问控制语法更改的完整参考 https://httpd.apache.org/docs/2.4/howto/access.html

答案2

在 apache 中,您可以:同时设置两个端口和两种连接方式,这样两种方式都可以工作。您可以<VirtualHost *:80>在文件 httpd-vhosts.conf 中设置,同时<VirtualHost _default_:443>在文件 httpd-ssl.conf 中设置,两种方式都可以正常工作。这完全取决于您授予的访问权限。如果您希望同时访问这两种方式,请同时设置它们Require all granted

相关内容