Установка SSL для локального домена на Open Server
Создать (в любом месте и с любым именем) файлик .bat с содержанием:
! Внимательно проверьте все пути, у вас они наверняка будут отличатся
@echo OFF rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ set OPENSSL_CONF=E:\open-server\modules\http\Apache_2.4-PHP_7.0-7.1-x64\conf\openssl.cnf PATH=%PATH%;E:\open-server\modules\http\Apache_2.4-PHP_7.0-7.1-x64\bin rem Количество дней действия сертификата set days=730 set key_bits=2048 rem Наименование домена, для которого создаётся сертификат set dname=loc-domain.test rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ rem Расположение корневого сертификата и ключа set root_cert=E:\open-server\userdata\config\cert_files\rootCA.crt set root_key=E:\open-server\userdata\config\cert_files\rootCA.key echo [trust_cert] > %dname%.cnf echo subjectAltName=@alt_names >> %dname%.cnf echo keyUsage=digitalSignature,keyEncipherment,dataEncipherment >> %dname%.cnf echo extendedKeyUsage=serverAuth,clientAuth >> %dname%.cnf echo [alt_names] >> %dname%.cnf echo DNS.1 = %dname% >> %dname%.cnf openssl genrsa -out %dname%.key %key_bits% openssl req -sha256 -new -utf8 -key %dname%.key -out %dname%.csr -subj /emailAddress="info\@ospanel\.io"/C=RU/stateOrProvinceName="Russian Federation"/L=Moscow/O="Open Server Panel"/OU=Software/CN=%dname%:3000 rem Для создания сертификата, подписанного доверенным сертификатом openssl x509 -sha256 -req -days %days% -in %dname%.csr -extfile %dname%.cnf -extensions trust_cert -CA %root_cert% -CAkey %root_key% -out %dname%.crt openssl x509 -in %dname%.crt -noout -purpose rem Удаление временных файлов del %dname%.csr del %dname%.cnf pause
Сгенерированные файла поместить в userdata\config\cert_files .
2. Добавить rootCA.crt в Доверенные корневые центры сертификации
При установки для первого локального домена нужно добавить rootCA.crt в доверенное хранилище. Для этого кликаем правой кнопкой мыши по сертификату rootCA.crt , выбираем Установить сертификат -> . -> «Поместить все сертификаты в следующее хранилище» -> «Доверенные корневые центры сертификации».
3. Применить SSL для конкретного домена
Ок, сертификат установлен, теперь его нужно активировать для определенного домена. Для этого:
Скопируйте файл конфигурации (у меня это файл Apache_2.4-PHP_7.0-7.1-x64_vhost.conf ), из папки userdata\config в корневую дерикторию домена (там, где у вас основной index.php) и поменяйте пути к файлам сертификата:
Если вы затрудняетесь определить какая именно у вас конфигурация, то это можно увидеть в Настройках Open Server, во вкладке Модули -> HTTP.
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/loc-domain.test.crt" SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/loc-domain.test.key"
Заметки и ссылки по теме:
-
https://ospanel.io/forum/viewtopic.php?f=4&t=5012&p=26166#p26166 https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm https://ziscod.com/ssl-sertifikat-v-openserver/
HTTPS для OpenServer (SSL сертификат)
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 .
ВАЖНО! На некоторых версиях windows Файл надо запускать с правами админа! Если в контекстном меню нет пункта «Открыть от админа», то открываем cmd/powerShell от админа и уже от туда запускаем файл сертификата. Выглядит это так:

Далее: Install Certificate > Current User > Trusted User Sertificate > Local Computer

Если нет local computer , то выбираем Enterprise .
#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 — поправляем в нем пути до созданных файлов сертификатов.
Должен получится примерно такой код файла:
DocumentRoot "%hostdir%" ServerName "%host%" ServerAlias "%host%" %aliases% ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/" 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"
#6 Готово!
Перезагружаем OpenServer и возможно браузер.
Способ 2: альтернативный более простой и быстрый
#1 Устанавливаем утилиту mkcert
В официальном репозитории есть инструкции для разных систем, но так как мы хотим установить сертификаты для OpenServer, значит у нас — Windows. Для установки на Windows сначала понадобится установленный Chocolatey или Scoop. В зависимости от выбранного пакетного менеджера (я использую Chokolatey) запускаем в терминале одну из следующих команд:
#Chocolatey choco install mkcert
#Scoop scoop bucket add extras scoop install mkcert
После установки можно проверить успешность, активировав команду mkcert
#2 Создаём сертификаты для доменов
- Переходим в директорию C:\OSPanel\userdata\config\cert_files (у вас путь может отличаться) и запускаем из неё терминал.
- Запускаем команду mkcert %имядомена% . Через пробел можно указать все домены, которые вам нужны, например mkcert example.local wpsite.develop test.local myblog.localhost
- В директории появятся сгенерированные файлы сертификатов
#3 Вносим изменения в конфигурацию сервера
- Переходим на уровень выше в каталог C:\OSPanel\userdata\config и открываем в редакторе файл нужного (активного у вас) модуля Apache %версия модуля%_vhost.conf в моём случае, например, это Apache_2.4-PHP_8.0-8.1_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"
и модифицируем её таким образом
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"
Установка ssl сертификата на OpenServer
Привет народ! Что-то я так и не нашёл как в Open Server можно подключить и настроить локальный ssl сертификат. Мануал почитал, там про это вообще не слово не встретил. По этому вопрос, как установить и настроить ssl сертификат на Open Servere, что бы локальный адрес сайта был не http://localsite.ru, а https://localsite.ru
Отслеживать
задан 19 янв 2018 в 5:33
Сергей Призма Сергей Призма
23 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Источник
Скрипт для генерации сертификата (сохранить как .bat и выполнить с правами администратора):
@echo OFF setlocal set OPENSSL_CONF=C:\openserver\modules\http\Apache-2.4\conf\openssl.cnf //заменить по необходимости set PATH=%PATH%;C:\openserver\modules\http\Apache-2.4\bin //заменить по необходимости set dname=mydomain //заменить по необходимости set days=730 set key_bits=2048 set root_certs_path=C:\openserver\userdata\config\cert_files //заменить по необходимости echo [trust_cert] > %dname%.cnf echo subjectAltName=@alt_names >> %dname%.cnf echo keyUsage=digitalSignature,keyEncipherment,dataEncipherment >> %dname%.cnf echo extendedKeyUsage=serverAuth,clientAuth >> %dname%.cnf echo [alt_names] >> %dname%.cnf echo DNS.1 = %dname% >> %dname%.cnf echo DNS.2 = %dname%.ospanel.io >> %dname%.cnf openssl genrsa -out %dname%.key %key_bits% openssl req -sha256 -new -utf8 -key %dname%.key -out %dname%.csr -subj /emailAddress="info\@ospanel\.io"/C=RU/stateOrProvinceName="Russian Federation"/L=Moscow/O="Open Server Panel"/OU=Software/CN=%dname% //заменить по необходимости rem Для создания сертификата, подписанного доверенным сертификатом openssl x509 -sha256 -req -days %days% -in %dname%.csr -extfile %dname%.cnf -extensions trust_cert -CA %root_certs_path%\rootCA.crt -CAkey %root_certs_path%\rootCA.key -out %dname%.crt del %dname%.csr del %dname%.cnf pause
Копируете ключ и сертификат в userdata\config\cert_files . Проверить правильность пути к сертификатам и ключам в соответственных конфигах apache (версии, которую вы используете, в вышеприведенном примере это 2.4) в строках, наподобие
ssl_certificate "C:/openserver/userdata/config/cert_files/mydomain.crt"; ssl_certificate_key "C:/openserver/userdata/config/cert_files/mydomain.key";
Отслеживать
ответ дан 22 янв 2018 в 11:36
Tarasovych Tarasovych
537 1 1 золотой знак 8 8 серебряных знаков 26 26 бронзовых знаков
Я пробовал так сделать. Но к сожалению не заработало. Пришлось переустановить OS. Скорее всего, что-то сделал не правильно
Форум
Выдача и установка SSL сертификата с поддержкой www
Советы и рекомендации
- 1
- 2
- След.
PhpStorm Сообщения: 48 Зарегистрирован: 06 авг 2017, 20:14
Выдача и установка SSL сертификата с поддержкой www
Я делал на модуле Apache-PHP-7-x64 так:
1. Переходим в OSPanel по адресу modules\http\Apache-PHP-7-x64\conf и редактируем исполняемый файл generate.bat
@echo off
set OPENSSL_CONF=%~dp0..\conf\openssl.cnf
..\bin\openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout rootCA.key -out rootCA.crt -subj «/CN=OSPanel/»
..\bin\openssl req -newkey rsa:2048 -nodes -days 5475 -keyout server.key -out server.csr -subj «/CN=PhpStorm/»
..\bin\openssl x509 -req -sha256 -days 5475 -in server.csr -extfile v3.txt -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt
..\bin\openssl dhparam -out dhparam.pem 2048
2. В этом же каталоге создаём новый текстовый файл с именем v3 (test.osp — это мой домен для примера, Вы можете прописать свой)
nsComment = «Open Server Panel Generated Certificate»
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = test.osp
DNS.2 = www.test.osp
3. В панели управления OSPanel открываем консоль и вводим
4. Запускаем батник командой
5. Ждём. И пока генерится сертификат, то идём в OSPanel по адресу userdata\config, копируем оттуда Apache-PHP-7-x64_vhost.conf и помещаем в корень нашей папки-домена.
6. Смотрим консоль, если генерация закончилась, то идём в OSPanel по адресу modules\http\Apache-PHP-7-x64\conf и запускаем файл rootCA
— Установить сертификат
— Текущий пользователь
— Поместить сертификат в следующее хранилище — Обзор — Доверенные коренные центры сертификации
7. (Не знаю, нужно ли это делать, но я делал) Теперь в OSPanel по адресу modules\http\Apache-PHP-7-x64\conf и запускаем файл server
— Установить сертификат
— Текущий пользователь
— Поместить сертификат в следующее хранилище — Обзор — Личные
8. В панели управления OSPanel в меню Алисы указываем исходный домен www.test.osp и конечный домен test.osp, жмём добавить и сохраняем.
9. В корне сайта создаём файл index.php
10. В корне сайт создаём файл .htaccess
RewriteCond % ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
10. Обязательно (. ) закрыть, если открыт, браузер и запустить сайт test.osp
Радуемся волшебству, аве мне