В этой шпаргалке будет рассмотрен простой способ включения протокола HTTPS для OpenServer при помощи утилиты mkcert.

Что такое mkcert

mkcert – это инструмент командной строки, который выполняет две функции:

  1. Создает локальный центр сертификации (CA) на вашем компьютере.
  2. Генерирует самоподписанные 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 . В ответ вы должны получить номер версии установленного пакетного менеджера.

Установка пакетного менеджера Chocolatey

Шаг 2 – установка mkcert

Для установки mkcert введите в терминале команду:

choco install mkcert
Установка mkcert

Шаг 3 – создаем локальный центр сертификации

Когда сервис mkcert используется в первый раз, его необходимо запустить с флагом -install. Это нужно для того, чтобы на вашем компьютере был создан локальный центр сетрификации, о котором я рассказывал выше. Введите в терминале следующую команду:

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.