Вопрос или проблема
Я использую Apache2 на Ubuntu.
У меня есть это DNS имя с использованием Cloudflare:
test.staging.mysite.com
Я использую Certbot letsencrypt для SSL
Следующая ошибка возникает при доступе к сайту в браузере:
Ошибка безопасного соединения
Произошла ошибка во время соединения с test.staging.mysite.com.
Невозможно обеспечить безопасное общение с партнером: нет общих алгоритмов шифрования.
Код ошибки: SSL_ERROR_NO_CYPHER_OVERLAP
Страница, которую вы пытаетесь просмотреть, не может быть показана, так как подлинность
полученных данных не может быть проверена.
Пожалуйста, свяжитесь с владельцами сайта, чтобы сообщить им об этой проблеме.
вот мой конфигурационный файл:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName test.staging.mysite.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3400/
ProxyPassReverse / http://127.0.0.1:3400/
ErrorLog ${APACHE_LOG_DIR}/test.staging.mysite.com-error.log
CustomLog ${APACHE_LOG_DIR}/test.staging.mysite.com-access.log combined
SSLCertificateFile /etc/letsencrypt/live/test.staging.mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test.staging.mysite.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</VirtualHost>
</IfModule>
Ответ или решение
Ошибка "SSL_ERROR_NO_CYPHER_OVERLAP" означает, что сервер и клиент не могут договориться о совместном шифровании. Это происходит, когда сервер и клиент не имеют общих протоколов и наборов шифров, которые они оба поддерживают. Рассмотрим, как вы можете решить эту проблему в контексте Apache2, Cloudflare и Let’s Encrypt на Ubuntu.
Проверьте конфигурацию SSL
-
SSL Протоколы и Шифры:
Убедитесь, что версии протоколов и наборы шифров, указанные в конфигурации вашего виртуального хоста Apache, поддерживаются Cloudflare. Ваши текущие настройки такие:SSLProtocol -all +TLSv1.2 +TLSv1.3 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES SSLHonorCipherOrder on
Такие настройки должны быть совместимы с современными конфигурациями. Однако, проверьте, что эти ограничения соответствуют поддерживаемым Cloudflare шифрам. Для этого можно воспользоваться документацией Cloudflare.
-
Файл конфигурации
options-ssl-apache.conf
:
Убедитесь, что файл/etc/letsencrypt/options-ssl-apache.conf
не содержит несовместимых настроек, которые могут перебить ваши параметры шифрования.
Настройки Cloudflare
-
Настройки SSL/TLS в Cloudflare:
Проверьте настройки SSL/TLS в панели управления Cloudflare. Режим SSL должен быть установлен на "Full" или "Full (Strict)" для взаимодействия с Let’s Encrypt сертификатами. Убедитесь, что при этом включены версии TLS, поддерживаемые вашим сервером. -
Режим прокси Cloudflare:
Попробуйте отключить режим прокси (облако в панели управления должно быть серым, а не оранжевым) и проверить доступ напрямую. Если проблема устраняется, вероятно, потребуется дополнительно изучить настройки Cloudflare.
Диагностика
-
Журналы ошибок:
Проверьте файлы журналов ошибок Apache/var/log/apache2/error.log
. Дополнительная информация может помочь выявить возможные причины конфликта шифров. -
Обновления:
Убедитесь, что все используемые вами программные компоненты актуальны. Это включает обновления Apache, OpenSSL и любые другие библиотеки, связанные с обработкой SSL. -
Тестирование:
Используйте онлайн-инструменты для проверки конфигурации SSL вашего сервера, например, SSL Labs. Это поможет выявить, какие именно шифры и протоколы доступны и какие поддерживаются.
Заключение
С двойной проверкой правильности всех настроек и их соответствия как требованиям Apache, так и Cloudflare, удастся устранить проблему совместимости шифров. Также обратите внимание на актуальность и поддержку используемых программных средств. В случае, если самостоятельно проблему решить не удается, рассмотрите обращение в поддержку Cloudflare или сообщество Apache для получения дополнительных советов.
Применяя последовательный подход, фокусируясь на настройках и актуальности, вы сможете эффективно решить данную проблему, улучшив безопасность и доступность вашего веб-приложения.