Найти в Дзене
Веб-разработка

Установка SSL сертификата на OpenServer

При разработке сайта локально, чтобы он корректно отображался и не пришлось делать лишних правок после выгрузки сайта на хостинг, желательно сразу настроить https на OpenServer'е. Мы это сделаем за 5 простых шагов. 1. Создаем .bat файл С любым названием, например, Generate-cert.bat и копируем туда этот код. Он сгенерирует нам сертификаты для нужного домена. : Version 1.0 : Author unknown @echo off : parameters set DOM=demo.ru set DOM_KEY=demo.ru set APACHE_VER=Apache_2.4-PHP_7.2-7.4 : create .txt config file set config_txt=generate-temp-config.txt ( echo nsComment = "Open Server Panel Generated Certificate" echo basicConstraints = CA:false echo subjectKeyIdentifier = hash echo authorityKeyIdentifier = keyid,issuer echo keyUsage = nonRepudiation, digitalSignature, keyEncipherment echo. echo subjectAltName = @alt_names echo [alt_names] echo DNS.1 = %DOM% echo DNS.2 = www.%DOM% ) > %config_txt% mkdir %DOM_KEY% set OSAPACHE_DIR=%~dp0..\..\..\modules\http\%APACHE_VER% set OPENSSL_CONF=%O
Оглавление

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

Мы это сделаем за 5 простых шагов.

1. Создаем .bat файл

С любым названием, например, Generate-cert.bat и копируем туда этот код. Он сгенерирует нам сертификаты для нужного домена.

: Version 1.0

: Author unknown

@echo off

: parameters

set DOM=demo.ru

set DOM_KEY=demo.ru

set APACHE_VER=Apache_2.4-PHP_7.2-7.4

: create .txt config file

set config_txt=generate-temp-config.txt

(

echo nsComment = "Open Server Panel Generated Certificate"

echo basicConstraints = CA:false

echo subjectKeyIdentifier = hash

echo authorityKeyIdentifier = keyid,issuer

echo keyUsage = nonRepudiation, digitalSignature, keyEncipherment

echo.

echo subjectAltName = @alt_names

echo [alt_names]

echo DNS.1 = %DOM%

echo DNS.2 = www.%DOM%

) > %config_txt%

mkdir %DOM_KEY%

set OSAPACHE_DIR=%~dp0..\..\..\modules\http\%APACHE_VER%

set OPENSSL_CONF=%OSAPACHE_DIR%\conf\openssl.cnf

"%OSAPACHE_DIR%\bin\openssl" req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout %DOM_KEY%\%DOM_KEY%-rootCA.key -out %DOM_KEY%\%DOM_KEY%-rootCA.crt -subj /CN=OSPanel-%DOM_KEY%/

"%OSAPACHE_DIR%\bin\openssl" req -newkey rsa:2048 -nodes -days 5475 -keyout %DOM_KEY%/%DOM_KEY%-server.key -out %DOM_KEY%\%DOM_KEY%-server.csr -subj /CN=%DOM_KEY%/

"%OSAPACHE_DIR%\bin\openssl" x509 -req -sha256 -days 5475 -in %DOM_KEY%\%DOM_KEY%-server.csr -extfile %config_txt% -CA %DOM_KEY%\%DOM_KEY%-rootCA.crt -CAkey %DOM_KEY%\%DOM_KEY%-rootCA.key -CAcreateserial -out %DOM_KEY%\%DOM_KEY%-server.crt

"%OSAPACHE_DIR%\bin\openssl" dhparam -out %DOM_KEY%\%DOM_KEY%-dhparam.pem 2048

del %DOM_KEY%\%DOM_KEY%-server.csr

del %DOM_KEY%\%DOM_KEY%-dhparam.pem

del %DOM_KEY%\%DOM_KEY%-rootCA.srl

del %config_txt%

pause

2 шаг:

Теперь нам нужно подправить следующие три значения после строки :parameters

DOM — домен для которого создается сертификат.

DOM_KEY — название папки в которую сгенерируется SSL-сертификаты.

APACHE_VER — имя вашего сервера Apache из папки C:\OSPanel\modules\http\. Там как правильно их несколько, вам нужно выбрать ту папку с сервером, который у вас установлен в настройках.

В моём случае это Apache_2.4-PHP_7.2-7.4

На всякий случай можно зайти в папку C:\OSPanel\modules\http и посмотреть совпадает ли название в настройках с именем конкретной папки.

-2

!Важно между = в параметрах не должно быть пробелов!

// Правильно:

set DOM_KEY=demo.ru

// Неправильно:

set DOM_KEY= demo.ru

set DOM_KEY = demo.ru

3-й шаг

Закидываем наш .bat файл в папку C:\OSPanel\userdata\config\cert_files и запускаем его двойным кликом.

4-й шаг

Добавляем созданный сертификат в хранилище сертификатов Windows.

В нашем случае это demo.ru/demo.ru-rootCA.crt.

ВАЖНО! На некоторых версиях windows Файл надо запускать с правами админа! Если в контекстном меню нет пункта "Открыть от админа", то открываем PowerShell от админа и уже от туда запускаем файл сертификата. Именно PowerShell, не cmd. Для этого нажимаем Win+Q, вводим в поиск powershell, нажимаем правой копкой мыши и выбираем запустить от имени администратора. Выглядит это так:

-3

и вводим команду

cd C:\OSPanel\userdata\config\cert_files\demo.ru

и потом

.\demo.ru-rootCA.crt

-4

Нажмите ENTER. Появится окно

-5

Нажимайте -> Установить сертификат -> Выбирайте "текущий пользователь" -> Выбирайте "Поместить все сертификаты в хранилище" -> ставим галочку "Показать физические хранилища" -> Доверенные корневые центры сертификации -> Локальный компьютер. (Если нет "Локальный компьютер", то выбирайте "Предприятие". Если и его нет, то попробуйте сохранить в "Реестр", а затем снова запустите PowerShell и повторите процедуру заново, "Локальный компьютер" должен появиться).

-6

Нажимаем "ОК". Сертификат установлен.

-7

5-й шаг.

Изменяем скопированный файл конфигурации.

Apache_2.4-PHP_7.2-7.4_vhost.conf — поправляем в нем пути до созданных файлов сертификатов.

Копируем этот файл отсюда C:\OSPanel\userdata\config в корень вашего сайта (C:\OSPanel\domains\demo.ru).

Находите строчки:

SSLCertificateFile "%sprogdir%/userdata/config/cert_files/server.crt"

SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/server.key"

И меняйте их на:

SSLCertificateFile "%sprogdir%\userdata\config\cert_files\demo.ru\demo.ru-server.crt"

SSLCertificateKeyFile "%sprogdir%\userdata\config\cert_files\demo.ru\demo.ru-server.key"

demo.ru - заменяете на свой сайт.

Перезагружаете OpenServer и ГОТОВО!

Гарантировано будет работать в браузере Chrome!

Подписывайтесь на канал, здесь буду делиться всякими полезностями!