Страница 1 из 3

SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 13 июн 2019, 12:11
PhpStorm
модуль: Apache_2.4-PHP_7.2-7.3-x64
тестовый домен (вместо него можно использовать тот, который нужен): test.osp
сервер установлен на диск C: в папку OSPanel (если у Вас другой путь, то соответствующие пути изменить)

В любом месте в одной и той же папке (назовите папку как хотите) на жёстком диске создаём 2 файла: start.bat и config.txt.

Содержимое start.bat
@echo off
set OPENSSL_CONF=C:\OSPanel\modules\http\Apache_2.4-PHP_7.2-7.3-x64\conf\openssl.cnf
C:\OSPanel\modules\http\Apache_2.4-PHP_7.2-7.3-x64\bin\openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout rootCA.key -out rootCA.crt -subj "/CN=OSPanel/"
C:\OSPanel\modules\http\Apache_2.4-PHP_7.2-7.3-x64\bin\openssl req -newkey rsa:2048 -nodes -days 5475 -keyout server.key -out server.csr -subj "/CN=PhpStorm/"
C:\OSPanel\modules\http\Apache_2.4-PHP_7.2-7.3-x64\bin\openssl x509 -req -sha256 -days 5475 -in server.csr -extfile config.txt -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt

Содержимое config.txt
nsComment = "OSPanel 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

Запускаем start.bat, сертификат генерируется моментально.

В результате в папке с этими двумя файлами появляются 6 файлов нашего сертификата, вырезаем их.

В папке domains создаём папку test.osp, в папке test.osp создаём папку ssl, в неё вставляем 6 файлов сертификата.

Запускаем файл rootCA, далее: Установить сертификат -> Текущий пользователь -> Поместить сертификат в следующее хранилище -> Обзор -> Доверенные коренные центры сертификации.

Если браузер был запущен, то закрыть браузер.

Помещаем в папку test.osp файл Apache_2.4-PHP_7.2-7.3-x64_vhost.conf, а именно копируем его из папки userdata\config, открываем в папке test.osp файл Apache_2.4-PHP_7.2-7.3-x64_vhost.conf и вносим изменения, следующие 2 строки:

SSLCertificateFile "%sprogdir%/userdata/config/cert_files/server.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/server.key"

меняем на

SSLCertificateFile "%sprogdir%/domains/%host%/ssl/server.crt"
SSLCertificateKeyFile "%sprogdir%/domains/%host%/ssl/server.key"

В панели управления OSPanel в меню Алиасы указываем исходный домен www.test.osp и конечный домен test.osp: Добавить -> Сохранить (сервер перезапустится).

В папке test.osp создаём файл .htaccess и сохраняем туда следующее содержимое

RewriteEngine On
RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC]
RewriteRule .* https://%1/$0 [R=301,L]

Запускаем сайт test.osp.

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 09 авг 2019, 12:15
Garnet_Fox
Спасибо, все встало отлично, однако дополню, у кого будут проблемы с локальными функциями php, при обращении к своему же серверу, при получении контента при помощи curl, пхп будет жаловаться на SSL.

Итак:

1. Если вы обращаетесь к локальному сайту функциями типа file_get_content и им подобными, в которых задействован curl, найти файл cacert.pem, он расположен в зависимости от модуля версии пхп, общая запись в php.ini: curl.cainfo = "%sprogdir%/modules/php/%phpdriver%/cacert.pem", и добавить вниз содержимое файла rootCA.crt

2. Для любителей WP, опять же про локальный сайт, и пользующимися функциями типа wp_remote_fopen, (ошибка типа CURL error 60: SSL certificate), wp пользует для этих целей свой файл, расположен по умолчанию \wp-includes\certificates\ca-bundle.crt, туда также дописываете содержимое rootCA.crt.

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 28 сен 2019, 22:26
DigitalWolf98
Все отлично работает, спасибо вам !
Но я заметил некоторые "особенности":
Почему имя "Кем выдан" и "Кому выдан" одинаковые и как это поправить ?

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 30 сен 2019, 06:41
PhpStorm
DigitalWolf98 писал(а): 28 сен 2019, 22:26 Все отлично работает, спасибо вам !
Но я заметил некоторые "особенности":
Почему имя "Кем выдан" и "Кому выдан" одинаковые и как это поправить ?
а Вы сначала установите и потом посмотрите кем и кому )))

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 30 сен 2019, 15:48
aaleks111
Здравствуйте, установил все по инструкции, адрес https: и переадресация срабатывает, НО:
при первом включении (т.е. после перезагрузки компьютера) - во всех браузерах выдает "подключение не защищено" и нужно нажимать кнопку "Я понимаю риск, но хочу продолжить" - после этого все работает до очередной перезагрузки компа.
Так и должно быть? или как-то исправляется?

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 14 окт 2019, 08:22
c1m8
Толковая статья про SLL для OpenServer (Windows)
https://wp-kama.ru/note/ssl-openserver

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 25 дек 2019, 14:52
Fikusbenjamin
PhpStorm писал(а): 13 июн 2019, 12:11 В папке domains создаём папку test.osp, в папке test.osp создаём папку ssl, в неё вставляем 6 файлов сертификата.
А вот тут не осилил. Ведь у меня уже есть папка с сайтом. Например я создаю сертификат для домена example.com, то в папке domains у меня есть папка example.
Или нужно всё таки создавать ещё папку example.com?
И ещё вопросик. После установки сертификата, нужно править файлы .htaccess / configuration.php ?
Сайты на Джумле.
Спасибо.

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 20 мар 2020, 14:30
nvv20
Отличная статья-спасибо. Всё получилось отлично. У меня вопрос по нескольким доменам по одному сертификату. Это возможно сделать для open server?

Re: SSL сертификат с поддержкой WWW для РАЗНЫХ ЛОКАЛЬНЫХ доменов

Добавлено: 20 мар 2020, 19:00
nvv20
nvv20 писал(а): 20 мар 2020, 14:30 Отличная статья-спасибо. Всё получилось отлично. У меня вопрос по нескольким доменам по одному сертификату. Это возможно сделать для open server?
Кажется я понял - надо в файле config.txt дополнительно дописать DNS.3, DNS.4 и т.д.

Помогите с SSL для сайта

Добавлено: 01 апр 2020, 12:06
zagin
Привет всем!
У меня проблема не могу установить сертификат SSL для сайта, все перепробовал.
Сертификат От Comodo сервер на основе Apace_2.4_PHP_5.5-5.6
Как мне установить сертификат для домена ? помогите ПЛЗ!!
Apace_2.4_PHP_5.5-5.6_vchoct.conf прописывал не помогает сервер не запускается после смены пути к сертификатам