Назад | Перейти на главную страницу

Нормально ли для сайта без SSL возвращать сообщение «Невозможно подключиться» при доступе через HTTPS: //

Я говорю только о серверах, у которых нет сертификатов SSL (самоподписанных или уполномоченных).

Нормально ли для сайта, у которого нет ничего о SSL (конфигурация по умолчанию, чистый установленный apache / nginx), возвращать Unable to connect (firefox) или refused to connect (хром) при доступе через https (например. https://example.com)?

Это действительно так или неправильная конфигурация на моем сервере

Да это нормально. HTTPS работает на разных портах, и на многих веб-серверах HTTPS-версия сайта существенно отличается от HTTP-версии стороны. К счастью, большинство администраторов настроят два сайта на обслуживание одного и того же контента.

Если у вас есть части сайта, требующие аутентификации, они должны быть доступны только в HTTPS-версии сайта. Часто HTTP-версия сайта перенаправляет такие запросы на HTTPS-версию сайта.

На некоторых веб-серверах доступны самозаверяющие сертификаты, позволяющие протестировать настройку HTTPS. Однако они генерируют предупреждения о сертификатах и ​​не подходят для общедоступных сайтов. Вам нужно будет заменить их сертификатами, признанными признанным центром сертификации.
Вы можете получить бесплатный сертификат в Давайте зашифровать. Этот центр сертификации призван сделать самостоятельную регистрацию простой и безопасной. Организация пользуется поддержкой многих организаций.

Многие поисковые системы наказывают сайты, которые не предлагают услуги с использованием HTTPS с действующим сертификатом. (Действительный сертификат - это сертификат с неограниченным сроком действия, подписанный признанным центром сертификации.) Для моего сайта Google предоставляет ссылки HTTPS вместо сайтов HTTP. Это началось после того, как я перешел с самозаверяющего сертификата на сертификат от Let's Encrypt.

Да, вы не сможете подключиться, если у вас нет сертификата. Он нужен для обмена ключами. К счастью, получить самозаверяющий - не так уж и сложно. Nginx выдает следующее сообщение об ошибке:

no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking

На первом этапе по этой ссылке они показывают вам, как создать самозаверяющий сертификат. https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04

Хотя я согласен с другими ответами на "не-SSL" согласно заголовку, на самом деле в вопросе есть не исключенная середина тело; SSL / TLS имеет некоторые шифровальные наборы который не используйте сертификат сервера: некоторые полностью не аутентифицированы (анонимны), а некоторые аутентифицированы не сертифицированными средствами (PSK или Kerberos). Эти редко используемый, часто запрещается, а иногда и не выполняется.

HTTPS как одно приложение (профиль) SSL / TLS не должно их использовать, потому что RFC2616 указывает соответствие идентификатора хоста URL-адреса сертификату, но это технически возможно. Браузеры (AFAIK все) не реализуют их, но некоторые другие клиенты делают или могут. AFAICT невозможно настроить Apache или nginx для их выбора, но другие серверы (или квази-серверы, такие как ALG, IDS / IPS / DLP или интерфейсный модуль / балансировщик нагрузки) могут, и это довольно легко сделать. в Java, если вы используете некорректно настроенное хранилище ключей (часто из-за плохих советов некоторых веб-сайтов) и включаете все поддерживаемые протоколы (следуя плохим советам многих веб-сайтов, даже stackexchange).

В таком случае, если сервер прослушивает 443, но не имеет сертификата:

  • IE (11) показывает: "Страница не может быть отображена ... неподдерживаемый протокол или шифр ..."
  • FF (47) показывает: «Ваше соединение небезопасно ... веб-сайт [настроен] неправильно [NO_CYPHER_OVERLAP]»
  • Chrome (52) показывает: "Этот сайт не может обеспечить безопасное соединение ... неподдерживаемый протокол ... ERR_SSL_VERSION_OR_CYPHER_MISMATCH"