让 SSL 在 Xampp 中工作 - 访问被禁止错误

Posted

技术标签:

【中文标题】让 SSL 在 Xampp 中工作 - 访问被禁止错误【英文标题】:Getting SSL to work in Xampp - Access forbidden error 【发布时间】:2015-04-29 20:29:48 【问题描述】:

我正在尝试让 Xampp 在 https 中工作,但我遇到了一些问题。

到目前为止我做了什么:

mod_ssl.so 已加载 php_openssl.dll 已加载 httpd-ssl.conf 中的 DocumentRoot 从 C:/xampp/htdocs 更改为 C:/xampp/,因为这是我网站的所有目录所在的位置。

我需要在 httpd-ssl.conf 中更改服务器名称吗?

编辑:我需要在端口 443 和 80 上的 httpd-vhosts.conf 中添加虚拟主机吗?另外,Xampp 是否带有内置的 SSL 证书等?

【问题讨论】:

【参考方案1】:

我认为最好的方法是为您正在开发的每个项目创建一个 VirtualHost。 否则,您将需要更改您当时正在开发的项目的 DocumentRoot。

因此,您可以更改“httpd-vhosts.conf”文件并为端口 80 创建一个 VH,将所有请求重定向到端口 443 的 VH(如果您只想禁用 HTTP),如下所示:

• HTTP

<VirtualHost *:80>
    ServerName yoursite.your.domain
    Redirect / https://yoursite.your.domain/
</VirtualHost>

• HTTPS

<VirtualHost *:443>
    ServerName yoursite.your.domain:443

    #in your case you're not using htdocs, so DocumentRoot be like
    DocumentRoot "C:\xampp\yourproject" 

    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
        Header always set Access-Control-Allow-Methods "POST, PUT, GET, DELETE, OPTIONS"
        Header always set Access-Control-Allow-Headers "Content-Type"
    </IfModule>

    #the same here
    <Directory  "C:\xampp\yourproject">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    #check your absolute path bellow
    SSLEngine on
    SSLCertificateFile "C:\xampp\apache\conf\ssl.crt\server.crt"
    SSLCertificateKeyFile "C:\xampp\apache\conf\ssl.key\server.key"
</VirtualHost>

关于证书,我认为 XAMPP 实际上带有一个内置的 SSL 证书,但是,即使它没有,你也可以使用他的工具生成它。你可以在网上看到很多关于这个的tutorials。

【讨论】:

以上是关于让 SSL 在 Xampp 中工作 - 访问被禁止错误的主要内容,如果未能解决你的问题,请参考以下文章

Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作

如何让 SSL 在 fsockopen 中工作?

无法让 SSL 在 Docker 容器中工作

无法让 SSL 在 Node.js 应用程序中工作

如何配置虚拟主机在 Xampp 的 htdocs 目录中工作?

当mysql停止在xampp中工作时该怎么办?