Установка SSL для локального домена на Open Server

1. Сгенерировать SSL Серитфикат

Создать (в любом месте и с любым именем) файлик .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/

Комментарии (1)

  1. t4p2 24 июля 2020, 11:38 # 0
    Не работает. При запуске cert_gen.cmd пишет: не является внутренней или внешней программой
    *Комментарий будет опубликован после проверки модератором

    [MODx] Генератор настроек MIGX

    [MODx, MIGx] Документация на русском по MIGX

    [MODX] Импорт и экспорт в MiniShop2. Реализация 1

    [JS] Маска для ввода телефона +7(___)___-__-__

    [MODx] minishop2 tips

    Как включить HTTPS (SSL) в MODX - Подробная инструкция

    [MODx, miniShop2] Генерация YML для выгрузки в маркет

    [MODx] Подсказки по API

    [OpenCart] Вывести на главную все категории с картинками

    [MODx] Сайт на обслуживании (выключить сайт)

    [MODx, MIGX] Примеры использования

    [PHP, JSON] Пример перевода с помощью Yandex Translate API

    Расширение свойств товаров minishop2

    Универсальная форма обратной связи — feedBackForm

    jQuery.Maskedinput js - документация на русском с примерами

    [MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

    [Opencart] Вернуть английский язык, если вы его удалили

    [OpenCart] Вывести модуль напрямую через контроллер

    [MODX, MIGX] Вывести getImageList только если он не пустой

    [MODx, Quip] Более рабочий вариант.

    [MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

    [MODX, MiniShop2] Примеры выборки where, optionFilters, innerJoin

    [MODX] pThumb - ресайз изображений. Примеры использования.

    Красивое адаптивное меню под pdoMenu

    Отключить автозаполнение input

    Все записи

    Добавьте такую строчку на свой сайт за 2 минуты по инструкции
    Наш сайт использует куки, нажмите «ОК» если вы не против
    OK