HTTPS для OpenServer (SSL сертификат)
Оглавление ▴
- #1 Создаем .bat файл
- #2 Запускаем файл generate-DOM-CERT.bat (как обычный юзер, НЕ админ!)
- #3 Добавляем созданный сертификат в хранилище сертификатов Windows
- #4 Копируем файл конфигурации апача
- #5 Изменяем скопированный файл конфигурации
- #6 Готово!
#1 Создаем .bat файл
C:\OpenServer\userdata\config\cert_files\generate-DOM-CERT.bat
со следующим кодом:
: Version 1.0 : Author unknown (improved by Kama - wp-kama.ru) @echo off : parameters set DOM=demo.ru set DOM_KEY=demo set APACHE_VER=Apache_2.4-PHP_7.2-7.3-x64 : 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
Параметры:
- DOM — домен для которого создается сертификат
- DOM_KEY — как будет называться папка с сертификатами и префикс у файлов сертификата. Указываем тут домен без зоны или сокращенное название домена, чтобы вам было понятно от какого домена текущий сертификат.
- APACHE_VER — имя папки апач сервера из
C:\OpenServer\modules\http\
. Из этого сервера будет использована библиотекаopenssl
для создания сертификатов.
Между =
в параметрах не должно быть пробелов!
// Правильно set DOM_KEY=demo // Неправильно set DOM_KEY= demo set DOM_KEY = demo
Чтобы создать очередной сертификат для домена, нужно будет просто открыть этот файл, изменить параметры и запустить его.
#2 Запускаем файл generate-DOM-CERT.bat (как обычный юзер, НЕ админ!)
Для запуска делаем двойной клик по файлу. Файл создаст папку домена (параметр DOM_KEY) и в ней файлы сертификатов.
#3 Добавляем созданный сертификат в хранилище сертификатов Windows
Для этого запускаем файл DOM_KEY/DOM_KEY-rootCA.crt
.
ВАЖНО! Файл надо запускать с правами админа! Если в контекстном меню нет пункта "Открыть от админа", то открываем cmd/powerShell от админа и уже от туда запускаем файл сертификата. Выглядит это так:
Далее: Install Certificate > Current User > Trusted User Sertificate > Local Computer:
#4 Копируем файл конфигурации апача
C:\OpenServer\userdata\config\Apache_2.4-PHP_7.2-7.3-x64_vhost.conf
в корневую папку сайта (туда где лежит wp-config.php).
#5 Изменяем скопированный файл конфигурации
Apache_2.4-PHP_7.2-7.3-x64_vhost.conf
— поправляем в нем пути до созданных файлов сертификатов.
Должен получится примерно такой код файла:
<VirtualHost *:%httpport%> DocumentRoot "%hostdir%" ServerName "%host%" ServerAlias "%host%" %aliases% ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/" </VirtualHost> <IfModule ssl_module> <VirtualHost *:%httpsport%> DocumentRoot "%hostdir%" ServerName "%host%" ServerAlias "%host%" %aliases% ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/" SSLEngine on SSLCertificateFile "%sprogdir%\userdata\config\cert_files\DOM_KEY\DOM_KEY-server.crt" SSLCertificateKeyFile "%sprogdir%\userdata\config\cert_files\DOM_KEY\DOM_KEY-server.key" </VirtualHost> </IfModule>
#6 Готово!
Перезагружаем OpenServer и возможно браузер.