Установка 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/

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

  1. t4p2 24 июля 2020, 11:38 # 0
    Не работает. При запуске cert_gen.cmd пишет: не является внутренней или внешней программой
    1. Евгений 05 ноября 2021, 23:43 # 0
      openserver — дополнительно — консоль
    2. Наталия 01 февраля 2023, 10:39 # 0
      Все проделала, не открывается сайт на локалке
      1. Иван 29 марта 2024, 10:13 # 0
        все работает, надо только пути правильно указать в том числе в самом начале
        set OPENSSL
        там надо указать путь к модулю который вы используете
        *Комментарий будет опубликован после проверки модератором

        Похожие статьи

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