个性化阅读
专注于IT技术分析

在本地PHP项目中使用xampp启用SSL(https协议)

本文概述

在我们的网站上使用https有很多优点(和缺点)。仅当连接是安全的(WebkitSpeechRecognition, getUserMedia等), 无法从安全网站(https)加载不安全的资源(http)和许多其他点时, 某些浏览器API才可用。

你可能试图在浏览器中以https而不是http开头来简单地更改url, 但是, 如果尝试在浏览器中访问, 唯一会发现的是Object not found!。

问题本身就解决了, 我们需要解决它, 我们的虚拟主机不为我们的项目提供SSL支持, 因此我们无法使用安全连接。

为本地主机URL启用SSL

默认情况下, localhost域允许你访问xampp / htdocs文件夹内的任何文件。例如, 如果你在C:/xampp/htdocs/file.html中有一个HTML文件, 即file.html, 则可以使用HTTP协议在浏览器中的http://localhost/file.html上轻松访问它。以相同的方式, 你可以通过HTTPS协议访问https://localhost/file.html上的文档。

如果使用虚拟主机访问文件或项目, 则可以执行下一步。

在单个项目上为虚拟主机启用SSL

我们假设你已经在* 80端口上安装了一个普通的虚拟主机, 它看起来类似于:

<VirtualHost 127.0.0.2:80>
  DocumentRoot "C:/xampp/htdocs/myproject/web"
  DirectoryIndex index.php

  <Directory "C:/xampp/htdocs/myproject/web">
	Options All
	AllowOverride All
	Require all granted
  </Directory>
</VirtualHost>

一个普通的虚拟主机, 指向一个简单的symfony 3项目中的端口80, 没什么特别的, 它本身不支持https。

要启用SSL连接, 你需要在另一个VirtualHost标记内添加以下各行, 这些标记的结构基本上与你的主要VirtualHost标记相同, 但具有以下信息:

注意

现在, 端口必须是443, 而不是80。

SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"

前几行将在你的项目中启用SSL。请注意, 这些路径是相对的, 使用正常安装的xampp发行版应该可以运行, 如果不起作用, 请尝试将其更改为绝对路径。它们通常位于xampp / apache / conf / ssl.key / server.key和xampp / apache / conf / ssl.crt / server.crt中。

<VirtualHost 127.0.0.2:443>
    DocumentRoot "C:/xampp/htdocs/myproject/web"
    ServerName myproject
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/myproject/web">
        Options All
	AllowOverride All
	Require all granted
    </Directory>
</VirtualHost>

请记住, 启用SSL的重点是属性SSLEngine, SSLCertificateFile和SSLCertificateKeyFile和正确的端口(443)。

现在在你的httpd-vhosts.conf文件中添加两个VirtualHost:

# http
<VirtualHost 127.0.0.2:80>
    DocumentRoot "C:/xampp/htdocs/myproject/web"
    DirectoryIndex index.php

    <Directory "C:/xampp/htdocs/myproject/web">
        Options All
    	AllowOverride All
    	Require all granted
    </Directory>
</VirtualHost>

# https
<VirtualHost 127.0.0.2:443>
    DocumentRoot "C:/xampp/htdocs/myproject/web"
    ServerName myproject
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/myproject/web">
        Options All
    	AllowOverride All
    	Require all granted
    </Directory>
</VirtualHost>

保存httpd-vhosts.conf文件, 然后重新启动apache服务并尝试使用https协议进行连接。

注意

在某些浏览器中, 由于证书不受信任, 你会收到警告, 你只需要跳过此警告。

玩得开心 !

赞(0)
未经允许不得转载:srcmini » 在本地PHP项目中使用xampp启用SSL(https协议)

评论 抢沙发

评论前必须登录!