Включение SSL (протокол https) с xampp в локальном проекте PHP

Есть много преимуществ (и недостатков) в использовании https на наших сайтах. Некоторые API браузера доступны только в том случае, если соединение защищено (webkitSpeechRecognition, getUserMedia и т. Д.), Вы не можете загружать небезопасные ресурсы (HTTP) с защищенных веб-сайтов (HTTPS) и много других баллов.

Возможно, вы пытались просто изменить URL в браузере с помощью https вместо http в начале, однако, единственное, что вы найдете, если попытаетесь получить доступ в браузере, будет Объект не найден!.

Проблема говорит сама за себя, и мы должны решить ее, наш виртуальный хост не обеспечивает поддержку SSL для нашего проекта, поэтому мы не можем использовать безопасное соединение.

Включить SSL для локального URL

По умолчанию домен localhost позволяет получить доступ к любому файлу внутри xampp/htdocs папка. Например, если у вас есть файл HTML, а именно file.html находится в C:/xampp/htdocs/file.html, затем вы можете получить к нему доступ в браузере по адресу http://localhost/file.html с протоколом HTTP легко. Таким же образом вы можете получить доступ к документу по протоколу HTTPS по адресу https://localhost/file.html,

Если вы получаете доступ к своим файлам или проектам с помощью виртуального хоста, вы можете перейти к следующему шагу.

Включить SSL для vhost в одном проекте

Мы предполагаем, что вы уже установили обычный виртуальный хост в * 80 порт и может выглядеть примерно так:


DocumentRoot "C:/xampp/htdocs/myproject/web"
DirectoryIndex index.php
Options All
AllowOverride All
Require all granted

Обычный vhost, указывающий на порт 80 в простом проекте Symfony 3, ничего особенного, и он не поддерживает 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,


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

Помните, что важным моментом для включения SSL являются свойства SSLEngine, SSLCertificateFile а также SSLCertificateKeyFile и правильный порт (443).

Теперь добавьте оба VirtualHost в свой httpd-vhosts.conf файл :

# http
DocumentRoot "C:/xampp/htdocs/myproject/web"
DirectoryIndex index.php
Options All
AllowOverride All
Require all granted
# https
DocumentRoot "C:/xampp/htdocs/myproject/web"
ServerName myproject
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
Options All
AllowOverride All
Require all granted

Спасти httpd-vhosts.conf файл и перезапустите службу apache и попробуйте подключиться по протоколу https.

Заметка

В некоторых браузерах вы получите предупреждение из-за ненадежного сертификата, вам нужно только пропустить это предупреждение.

Повеселись !

Ссылка на основную публикацию
Adblock
detector