Apache SSL: сертификат сервера не включает идентификатор, совпадающий с именем сервера

каждому виртуальному хосту требуется определение журнала ошибок и общего журнала, без них используется журнал по умолчанию, также обратите внимание, что стоит создать виртуальный хост по умолчанию, который улавливает весь трафик, который не для одного из ваших доменов (люди, которые указывают свои DNS на вашем сайте). Это может иметь плохие последствия, так как это обманчивый контент.

итак, в каждом виртуальном хосте;

    ErrorLog "logs/web1-error_log"
    CustomLog "logs/web1-access_log" common

    ErrorLog "logs/web2-error_log"
    CustomLog "logs/web2-access_log" common

ОБНОВЛЕНИЕ:

не видел часть о том, что не регистрируется конкретный каталог, это может быть достигнуто путем установки переменной окружения.

22
10.04.2017, 16:03
5 ответов

Хорошо, я заметил, что в последнее время этот пост просматривается довольно часто, поэтому кажется, что многие люди сталкиваются с той же проблемой, что и я. Если это так, то это может вам помочь.

Я выполнил простой пошаговый -за -пошаговый учебник, чтобы создать сертификат SSL -для своего веб-сервера. Как и во многих учебниках, результатом урока, которому я следовал, был самоподписанный сертификат -с использованием OpenSSL. Да self -подписанный , вот в чем проблема. Браузер не может доверять серверу из-за его сертификата, подписанного им самим. Я бы тоже не стал...

Сертификат должен быть подписан внешним доверенным центром сертификации (ЦС ). Итак, я наткнулся на Let's Encrypt , который сделает всю работу за вас, его еще проще настроить, а лучше всего :он абсолютно бесплатный.

Установка

1 )Удалите старые файлы сертификатов ssl, которые вы создали с помощью OpenSSL

2 )Откройте резервные копии, чтобы получить клиент certbot в Debian. Вы должны знать, что это откроет дыру для недоработанного программного обеспечения! Устанавливайте пакеты только тогда, когда вы знаете, что делаете.

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list

3 )Обновите систему Linux

sudo apt-get update

4 )Установить certbot

sudo apt-get install python-certbot-apache -t jessie-backports

5 )Настройте apache ServerName и ServerAlias ​​

sudo nano /etc/apache2/sites-available/000-default.conf

6 )Редактировать файл конфигурации apache

<VirtualHost *:80>
   ...
    ServerName example.com
    ServerAlias www.example.com
   ...
</VirtualHost>

7 )Проверить правильность синтаксиса

sudo apache2ctl configtest

8 )Если файл конфигурации выглядит нормально, перезапустите сервер Apache

sudo systemctl restart apache2

9 )Настройте сертификат с помощью certbot и следуйте инструкциям на экране.

sudo certbot --apache

Обновление

Все сертификаты Let's Encrypt действительны в течение 3 месяцев. Чтобы обновить, вы можете вручную запустить

sudo certbot renew

Или автоматизируйте эту службу как задание cron

sudo crontab -e

и введите следующую строку, чтобы активировать продление каждый понедельник в 2 :30:00.

...
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

Вы можете ознакомиться с более подробным руководством здесь:https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8

13
27.01.2020, 19:43

Это не ошибки - это предупреждения. Вполне возможно запустить mod_ssl с сертификатом, который не соответствует определенным именам серверов, если у вас определен хост ssl по умолчанию, а общее имя в сертификате совпадает с именем хоста, используемым клиентами для подключения.

Последнее, похоже, неверно в вашем случае. Как говорит Джейкоб, вам нужно указать правильное имя хоста в качестве общего имени (или псевдонима) при создании CSR .

Чтобы узнать, какие имена в настоящее время указаны в сертификате:

openssl s_client -showcerts -connect ${HOSTNAME}:443

Если на машине установлено несколько сертификатов, обслуживаемых на одном IP-адресе, то:

openssl s_client -showcerts -connect ${HOSTIP}:443 -servername ${HOSTNAME}

(где $ {...} значения - это заполнители, которые следует заменить соответствующими значениями).

2
27.01.2020, 19:43

В моем случае я решил эту проблему, заменив в моем файле конфигурации apache ssl для каждого соответствующего домена:

ServerName mydomain.com
ServerAlias www.mydomain.com

по:

ServerName www.mydomain.com
ServerAlias mydomain.com

Поскольку мой сертификат предназначен для «www.mydomain.com», а не для «mydomain.com»

полный файл apache:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin noreply@mydomain.com
        ServerName www.mydomain.com
        ServerAlias mydomain.com
    DocumentRoot /home/mydomain.com/public_html
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/mydomain.com/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>


ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
4
27.01.2020, 19:43

Нам пришлось добавить ServerName и ServerAlias ​​в файл ssl по умолчанию -, а не только в файл conf для конкретного домена.
Это избавило нас от надоедливой ошибки.

0
27.01.2020, 19:43

Я нашел решение, которое мне подходит SSL НА CENTOS 8

  1. открытьnano /etc/httpd/conf.d/ssl.conf
  2. Добавьте свой ssl в файл ssl.conf
  3. ГОТОВО
SSLCertificateFile /etc/letsencrypt/live/radiolatina.ru/fullchain.pem 

SSLCertificateKeyFile /etc/letsencrypt/live/radiolatina.ru/privkey.pem 
1
27.01.2020, 19:43

Теги

Похожие вопросы