Рейтинг:1

Как исправить SSL_ERROR_NO_CYPHER_OVERLAP для 2 доменов на apache с помощью certbot

флаг cn

У нас есть два сайта, работающих на одном апаче: www-example1-com, www-example2-com

www-example1-com был первым существующим сайтом, получил сертификат lets-encrypt и отлично работает. www-example2-com — второй сайт, который также получил сертификат lets-encrypt.

www-example1-com работает нормально. www-example2-com вызывает ошибку в Firefox и Chromium SSL_ERROR_NO_CYPHER_OVERLAP в Firefox ERR_SSL_VERSION_OR_CIPHER_MISMATCH в Chromium

Что я сделал до сих пор:

  • Я создал сертификат для www-example2
  • Я расширил сертификат www-example1, чтобы он учитывался и для www-example2.
  • Я расширил example2.conf в /etc/apache2/sites, доступный фрагментом кода из https://ssl-config.mozilla.org/
  • Я удалил ключ и сертификат для www.example2 и собрал их заново.
  • Я проверил example1-conf, example2-conf, 000-default-le-ssl.conf, apache2.conf.
  • https://www.ssllabs.com/ssltest/analyze.html?d=example2.com --> Оценка не удалась: не удалось установить связь с защищенным сервером.

Журнал ошибок apache выводит эту строку: [ssl:info] [pid 19288] (70014) Найден конец файла: [клиент 192.168.0.9:53597] AH01991: Ошибка чтения входного фильтра SSL.

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

В каждом случае сообщение об ошибке не изменилось.

000-по умолчанию-ле-ssl.conf:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
    ServerAdmin webmaster@localhost
    Protocols h2 h2c http/1.1
    DocumentRoot /var/www/html/
    ServerName www.example1.com
    ServerAlias example1.com
    Protocols h2 h2c http/1.1

    <Directory /var/www/>
            Options -Indexes +FollowSymLinks
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>
    
    # added 01.04.2019 END
    
    <Directory /var/www/html/>
      Options -Indexes +FollowSymlinks
      AllowOverride All
      Require all granted
      allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    #SSLEngine off
    #Include /etc/letsencrypt/options-ssl-apache.conf
    #Header always set Content-Security-Policy upgrade-insecure-requests
    Include /etc/letsencrypt/options-ssl-apache.conf
    #SSLCertificateFile /etc/letsencrypt/live/www.example2.com/fullchain.pem
    #SSLCertificateKeyFile /etc/letsencrypt/live/www.example2.com/privkey.pem
    #Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.example1.com-0001/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example1.com-0001/privkey.pem
    </VirtualHost>
    </IfModule>

пример2.conf

<VirtualHost *:80>
 Protocols h2 http/1.1
 ServerAdmin [email protected]
 DocumentRoot /var/www/html1/example2/
 ServerName www.example2.com
 ServerAlias example2.com
 <Directory /var/www/html1/example2>
    Options -Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 RewriteEngine on
 RewriteCond %{SERVER_NAME} =www.example2.com [OR]
 RewriteCond %{SERVER_NAME} =example2.com
 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
 </VirtualHost>

 <IfModule mod_ssl.c>
 <VirtualHost *:443>
    ServerAdmin [email protected]
    Protocols h2 h2c http/1.1
    DocumentRoot /var/www/html1/example2
    ServerName www.example2.com
    ServerAlias example2.com

    <Directory /var/www/html1>
            Options -Indexes +FollowSymLinks
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>
    <Directory /var/www/html1/example2>
      Options -Indexes +FollowSymlinks
      AllowOverride All
      Require all granted
     allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 #       SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
 #       SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
 #       SSLHonorCipherOrder     off
 #       SSLSessionTickets       off

 #SSLUseStapling On
 #SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

 Include /etc/letsencrypt/options-ssl-apache.conf
 SSLCertificateFile /etc/letsencrypt/live/www.example1.com-0001/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/www.example1.com-0001/privkey.pem
 </VirtualHost>
 </IfModule>

Вывод openssl:

ПОДКЛЮЧЕН(00000003)
140386018971712: ошибка: 14094410: подпрограммы SSL: ssl3_read_bytes: ошибка рукопожатия предупреждения sslv3:../ssl/record/rec_layer_s3.c:1407: номер предупреждения SSL 40
---
 нет доступного однорангового сертификата
---
Имена ЦС сертификата клиента не отправлены
---
SSL-рукопожатие прочитало 7 байт и записало 198 байт.
Проверка: ОК
---
Новый, (НЕТ), Шифр ​​(НЕТ)
Безопасное повторное согласование НЕ поддерживается
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
Протокол: TLSv1.2
Шифр: 0000
Идентификатор сессии: 
Идентификатор сеанса-ctx: 
Мастер ключ: 
Идентификация PSK: нет
Подсказка идентификации PSK: нет
Имя пользователя SRP: нет
Время начала: 1623677307
Время ожидания: 7200 (сек)
Подтвердите код возврата: 0 (хорошо)
Расширенный главный секрет: нет

Может ли кто-нибудь помочь найти ошибку? Пожалуйста, сообщите мне, если вам нужна дополнительная информация.

Заранее спасибо.

ezra-s avatar
флаг ru
Предположительно, это должно работать, но я не вижу «SSLEngine on» в виртуальном хосте. С другой стороны, директивы Order, Allow, Deny являются устаревшими, пожалуйста, прекратите их использовать. То же самое с «AllowOverride all», если вы являетесь администратором сайта, нет необходимости использовать .htaccess. Да, и... вам может понравиться mod_md для обработки сертификатов letsencrypt, попробуйте.
Zehke avatar
флаг cn
возможно ли, что ошибка также возникает, когда на сервере не включен ssl? - Мы взяли свежий сервер, создали все с нуля только с apache-сайтом по умолчанию, и ошибка все еще возникает.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.