В этой шпаргалке будет рассмотрен простой способ включения протокола HTTPS
для OpenServer при помощи утилиты mkcert.
Что такое mkcert
mkcert – это инструмент командной строки, который выполняет две функции:
- Создает локальный центр сертификации (CA) на вашем компьютере.
- Генерирует самоподписанные SSL-сертификаты для этого центра.
Работая в паре, эти функции обеспечивают безопасное соединение с локальными веб-сайтами, даже если они используют самоподписанные сертификаты.
Когда браузер загружает сайт, который использует один из созданных mkcert сертификатов для HTTPS, то он проверяет этот сертификат с помощью локальной службы проверки, зарегистрированной на вашем компьютере. Таким образом, браузер будет считать, что соединение является безопасным и нормальным.
Шаг 1 – установка пакетного менеджера Chocolatey
Прежде чем воспользоваться инструментом mkcert, необходимо установить пакетный менеджер для Windows Chocolatey. Запустите терминал с правами администратора и выполните следующую команду:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Подождите завершения выполнения команды несколько секунд. Если вы не видите ошибок, значит пакетный менеджер Chocolatey успешно установлен.
Проверку можно выполнить при помощи команды choco
. В ответ вы должны получить номер версии установленного пакетного менеджера.
Шаг 2 – установка mkcert
Для установки mkcert введите в терминале команду:
choco install mkcert
Шаг 3 – создаем локальный центр сертификации
Когда сервис mkcert используется в первый раз, его необходимо запустить с флагом -install
. Это нужно для того, чтобы на вашем компьютере был создан локальный центр сетрификации, о котором я рассказывал выше. Введите в терминале следующую команду:
mkcert -install
Если прошло все хорошо, вы должны увидеть примерно следующее:
Шаг 4 – создаем сертификаты для доменов
Сначала переходим в директорию C:\OSPanel\userdata\config\cert_files
(обратите внимание, что у вас путь может отличаться) и запускаем из неё терминал.
Далее запускаем команду mkcert %имядомена%
. Через пробел можно указать все домены, которые вам нужны, например mkcert test.loc mysite.loc wordpress.local blog.localhost
.
В директории cert_files
появятся сгенерированные файлы сертификатов.
Шаг 5 – вносим изменения в конфигурацию сервера
Возвращаемся на уровень выше в каталог C:\OSPanel\userdata\config
и открываем в редакторе файл нужного (активного у вас) модуля Apache %версия модуля%_vhost.conf
Находим строку, начинающуюся с SSLEngine on
SSLEngine on
#Protocols http/1.1
#Header always set Strict-Transport-Security "max-age=94608000"
#SSLCACertificateFile ""
#SSLCertificateChainFile ""
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/server.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/server.key"
и изменяем ее следующим образом:
<IfFile "%sprogdir%/userdata/config/cert_files/%host%.pem">
SSLEngine on
#Protocols http/1.1
#Header always set Strict-Transport-Security "max-age=94608000"
#SSLCACertificateFile ""
#SSLCertificateChainFile ""
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/%host%.pem"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/%host%-key.pem"
</IfFile>
Перезагружаем OpenServer и проверяем работу https протокола на наших локальных сайтах.
Как включить ssl сертификат на новых локальных доменах
Для того, чтобы включить https для новых локальных доменов, повторите Шаг 4 и перезагрузите OpenServer.