本文概述
在我们的网站上使用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协议进行连接。
注意
在某些浏览器中, 由于证书不受信任, 你会收到警告, 你只需要跳过此警告。
玩得开心 !
评论前必须登录!
注册