Войти
Добавляем валидный SSL сертификат Open Server в пару кликов
Опубликовано 01.12.2020 / Смотрели 63

В разработке, я постоянно использую локальный Open Server (OSpanel) и нахожу его очень удобным из-за его гибких настроек и обилия различных модулей. Однако, в каждой новой версии остается одна проблема — отсутствие настроек SSL сертификатов. Поэтому далее я покажу как решить эту проблему… SSL в Open Server — в чем проблема? В этом и заключается все, что как таковой проблемы нет, но есть отсутствие корректной информации и обилие ложных мануалов как все настраивать, после которых обычно ничего не работает, либо сервер больше не запускается. Я долго искал ответы как настроить сертификат, и в итоге нашел решение, которое позволит все реализовать, без каких-либо последствий. Я даже прибегал к стандартным способам установки сертификатов через Let’s Encrypt и т.п, но это также не решило проблем. Включаем SSL Итак, теперь по шагам: Создаем где-нибудь *.cmd файл. Я назвал его cert_gen.cmd. Вы можете назвать его как хотите; В файле cert_gen.cmd прописываем следующий код:

@echo OFF
rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ set OPENSSL_CONF=F:\openserver\modules\http\Apache-2.4\conf\openssl.cnf PATH=%PATH%;F:\openserver\modules\http\Apache-2.4\bin
rem Количество дней действия сертификата
set days=730 set key_bits=2048
rem Наименование домена, для которого создаётся сертификат
set dname=somesite.com
rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ
rem Расположение корневого сертификата и ключа
set root_cert=F:\openserver\userdata\config\cert_files\rootCA.crt
set root_key=F:\openserver\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

Пройдитесь по коду файла и исправьте, где необходимо пути к файлам и доменное имя локального сайта. Также, убедитесь в наличии всех файлов перечисляемых по коду.; Открываем консоль (win + R -> cmd ) и запускаем cert_gen.cmd файл. В итоге вы получите 2 файла — *.crt и *.key. В моем случае это — somesite.com.crt и somesite.com.key; Где-нибудь создаем новую папку, которую называем доменным именем ( в моем случае из кода выше — somesite.com, у вас естественно будет свое название ) и перемещаем туда сгенерированные ранее файлы ; Переходим в OpenServer\userdata\config\ и создаем там директорию — cert_files ; Перемещаем в созданную выше директорию, папку с доменным именем из предыдущего шага; Переходим в папку сайта ( в моем случае — OpenServer\domains\somesite.com ) и добавляем туда файл Apache-2.4_vhost.conf или Nginx-1.10_vhost.conf . В зависимости от того Apache у вас или Nginx — укажите правильное имя + измените версию. К слову, имя и версию можно посмотреть в настройках опен сервера — Open Server -> Настройки -> Модули; В созданном выше файле прописываете следующий код:
#-----------------------------------------------# # Начало блока конфигурации HTTP хоста #-----------------------------------------------#
DocumentRoot "%hostdir%"
ServerName "%host%"
ServerAlias "%host%" %aliases%
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
#-----------------------------------------------# # Конец блока конфигурации HTTP хоста #-----------------------------------------------# #-----------------------------------------------# # Начало блока конфигурации HTTPS хоста #-----------------------------------------------#
DocumentRoot "%hostdir%"
ServerName "%host%"
ServerAlias "%host%" %aliases%
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
SSLEngine on #Header always set
Strict-Transport-Security "max-age=94608000"
#SSLCACertificateFile "" #SSLCertificateChainFile ""
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/somesite.com/somesite.com.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/somesite.com/somesite.com.key"
SetEnvIf User-Agent ".*MSIE [1-5].*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*" \ ssl-unclean-shutdown
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
#-----------------------------------------------# # Конец блока конфигурации HTTPS хоста #-----------------------------------------------#
Пройдитесь по коду файла и исправьте, где необходимо пути к файлам и доменное имя локального сайта. Вы также можете взять код-шаблон этого файла из директории OpenServer\userdata\config\. Там же перечислены все шаблоны для *.conf файлов; Перезапустите Open Server; Откройте свой сайт через https://. Сертификат создается на 730 дней, но вы можете установить в настройках файла cert_gen.cmd например 99999 дней и после этого забыть о перевыпуске нового сертификата.

Источник: https://ziscod.com/ssl-sertifikat-v-openserver/



  • Мир под Напряжением
    Мир под Напряжением

    Вышки сотовой связи, километры проводов, wi-fi  и мобильные телефоны сформировали наш современный мир. Мы просто не можем себе представить жизнь без электронных…

  • JS Автообновление строчки
    JS Автообновление строчки

    Код обновляет (изменяет) строчку по ранее заданным параметрам   <script language="JavaScript">var arr = new Array();   arr.push("Строчка 1. Первая");arr.push("Строчка 2.…

  • Конвертирование .docx to .pdf  средствами 1с
    Конвертирование .docx to .pdf средствами 1с

    ТекущиеДанные = ТекущиеДанныеСпискаФайлов(); Оболочка = Новый COMОбъект("WScript.Shell"); КаталогДанныхПользователя = Оболочка.ExpandEnvironmentStrings("%APPDATA%"); ПутьККаталогу =…


Комментарии

Имя:
64 + 40 =