Перенастраивая систему пришлось заново генерировать сертификат к моему сайту. но почему-то certbot сгенерировал сертификат только к www.jura12.ru а jura12. остался без сертификата. Выход это создать на этот домен заглушку-редирект /etc/apache2/sites-available/jura12.ru.nohttp.conf . Вот его текст:
ServerName jura12.ru
ServerAlias www.jura12.ru
Redirect permanent / https://www.jura12.ru/
</VirtualHost>
И все работает (в убунту 18.04)!
P.S. есть и другие решения например с помощью модуля rewrite. правильность указанного выше решения не доказана.
Комментарии
Правильный выход перегенерировать сертификат. Т.к. редирект не поможет, если вход будет на https://jura12.ru/.
перегенерировал. certbot кучу файлов сделал. потом выложу. сейчас неудобно.
вот правильный редирект
ServerName jura12.ru
ServerAlias www.jura12.ru
# Redirect permanent / https://www.jura12.ru/
RewriteEngine on
RewriteCond %{SERVER_NAME} =jura12.ru [OR]
RewriteCond %{SERVER_NAME} =www.jura12.ru
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
он идет на 2 сайта, 2 идентичных кроме имени домена файла конфигурации:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName www.jura12.ru
Protocols h2 h2c http/1.1
<IfModule mpm_itk_module>
AssignUserId yuraxu1804 yuraxu1804
</IfModule>
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler "proxy:unix:/run/php/php7.3-fpm-yuraxu1804.sock|fcgi://localhost"
</FilesMatch>
DocumentRoot /var/www/drupal9/web
<Directory /var/www/drupal9/web/>
Options +FollowSymlinks -MultiViews
!> AllowOverride All
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/jura12.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jura12.ru/privkey.pem
#security headers
#Header set Content-Security-Policy "default-src 'self'; report-uri: 'https://www.jura12.ru/report' "
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
#Header always set X-Frame-Options DENY
Header set X-XSS-Protection "1; mode=block"
</VirtualHost>
</IfModule>
А чем именно он правильнее?
Смысла редиректить отдельно на https://jura12.ru и на https://www.jura12.ru просто нет.
Первый вариант редиректа был вполне верным, просто он ни коим образом не решал проблемы с отсутствием сертификата для домена... Редиректы вообще не могут помочь с этим.
В этом же наборе конфигов не хватает того виртуального хоста, который будет обрабатывать https://jura12.ru и это явная ошибка.
Все редиректы должны вести в итоге на одно и то же зеркало, например, на https://www.jura12.ru.
И нужны с http://jura12.ru и http://www.jura12.ru на https://jura12.ru, а также с https://www.jura12.ru на https://jura12.ru.
Ну или наоборот, если выбран основным c www, что впрочем, странное решение.
Правильнее тут только то, что сохраняется uri при редиректе, на самом деле, и это важно.
P.S. Кстати, mpm-itk не нужен при fastcgi. Нужен worker или даже event, это будет куда эффективнее.
А mpm-itk нужен с mod-php, чтобы менять пользователя из под которого выполняется скрипт.
P.P.S. Да и вообще стоит выкинуть тут апач, не надо за него цепляться. Какой-нибудь nginx намного удачнее в такой связке.
начну с конца.
1. mpm-itk согласен что надо выбросить. оставил для памяти если вдруг придется возвратиться. я не все параметры помню.
2. согласен про nginx. как наиграюсь то перейду. пока есть нормальные наработки в апаче.
3. "Все редиректы должны вести в итоге на одно и то же зеркало" была такая мысль сделать. если советуете то наверно так и сделаю.
"В этом же наборе конфигов не хватает того виртуального хоста, который будет обрабатывать https://jura12.ru и это явная ошибка." тут вы неправильно поняли. я написал что у меня 2 одинаковых скрипта. и привел только один.
в общем приведу последний 3й вариант 3х конфигов когда все ведут на один конфиг.
Если он такой же, то это тоже не то - в нём должен быть редирект, или в https://www. должен быть редирект. Т.е. должен быть один рабочий конфиг с обработчиками и две "заглушки" с редиректами.