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


Getting SSL to work in Xampp - Access forbidden error

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

到目前为止我所做的:

  • mod_ssl.so已加载
  • php_opensl.dll已加载
  • httpd-ssl.conf中的DocumentRoot已从C:''xamp/htdocs更改为C:''xamp/,因为我的站点的所有目录都在这里

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

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

我认为最好的方法是为您正在开发的每个项目创建一个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证书,但是,即使它没有附带,你也可以使用他的工具生成它。你可以在互联网上看到很多关于这方面的教程。