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

本文概述

  • 为本地主机URL启用SSL
  • 在单个项目上为虚拟主机启用SSL
在我们的网站上使用https有很多优点(和缺点)。仅当连接是安全的(WebkitSpeechRecognition, getUserMedia等), 无法从安全网站(https)加载不安全的资源(http)和许多其他点时, 某些浏览器API才可用。
你可能试图在浏览器中以https而不是http开头来简单地更改url, 但是, 如果尝试在浏览器中访问, 唯一会发现的是Object not found!。
问题本身就解决了, 我们需要解决它, 我们的虚拟主机不为我们的项目提供SSL支持, 因此我们无法使用安全连接。
为本地主机URL启用SSL【在本地PHP项目中使用xampp启用SSL(https协议)】默认情况下, 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 onSSLCertificateFile "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 myprojectSSLEngine onSSLCertificateFile "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 AllAllowOverride AllRequire all granted< /Directory> < /VirtualHost> # https< VirtualHost 127.0.0.2:443> DocumentRoot "C:/xampp/htdocs/myproject/web"ServerName myprojectSSLEngine onSSLCertificateFile "conf/ssl.crt/server.crt"SSLCertificateKeyFile "conf/ssl.key/server.key"< Directory "C:/xampp/htdocs/myproject/web"> Options AllAllowOverride AllRequire all granted< /Directory> < /VirtualHost>

保存httpd-vhosts.conf文件, 然后重新启动apache服务并尝试使用https协议进行连接。
注意在某些浏览器中, 由于证书不受信任, 你会收到警告, 你只需要跳过此警告。
玩得开心 !

    推荐阅读