Короче говоря, нет, но могут быть тонкие случаи в зависимости от того, как вы хотите развернуть систему.
HTTPS - это HTTP поверх SSL / TLS, и вы можете использовать SSL / TLS без сертификата или с сертификатами других типов, кроме X.509 .
- Комплекты анонимных шифров: они могут обеспечивать шифрование, но без аутентификации. Скорее бесполезен с точки зрения безопасности ... Цитируя RFC 4346 : « анонимному Диффи-Хеллману настоятельно не рекомендуется, потому что он не может предотвратить атаки типа « человек посередине ».
- Предварительные общие ключи : у него есть собственный механизм проверки удаленной идентификации, но общая природа ключей приносит свой собственный набор проблем (в частности, ограниченное развертывание).
- Наборы шифров Kerberos : клиент может проверить подлинность сервера по имени участника Kerberos.
Строго говоря, спецификация HTTP over TLS гласит следующее:
Как правило, запросы HTTP / TLS генерируются путем разыменования URI. Как следствие, имя хоста для сервера известно клиенту. Если имя хоста доступно, клиент ДОЛЖЕН проверить его на соответствие идентификатору сервера, как указано в сообщении сертификата сервера, для предотвращения атак «человек посередине».
Если клиент имеет внешнюю информацию относительно ожидаемой идентификации сервера, проверка имени хоста МОЖЕТ быть опущена. (Например, клиент может подключаться к машине, адрес и имя хоста которой являются динамическими, но клиент знает сертификат, который будет представлять сервер.) В таких случаях важно максимально ограничить область допустимых сертификатов в Чтобы предотвратить нападение человека в середине. В особых случаях может быть целесообразным, чтобы клиент просто игнорировал идентификатор сервера, но следует понимать, что это оставляет соединение открытым для активной атаки.
Короче говоря, он явно предназначен для использования с сертификатом X.509 (он явно ссылается на RFC 2459, позже замененный RFC 3280 и 5280: PKI с сертификатами X.509).
Может быть крайний случай, когда вы используете наборы шифров Kerberos. Может иметь смысл рассматривать билет службы Kerberos на сервере, который может предполагать, что он имеет ту же цель, что и сертификат X.509 в обычном HTTPS, для проверки личности удаленной стороны. Он не совсем вписывается в правила RFC 2818 (хотя он может попадать в раздел « Если у клиента есть внешняя информация относительно ожидаемой идентификации сервера, проверка имени хоста МОЖЕТ быть опущена »), но это не будет совершенно абсурдно. При этом, я не думаю, что обычные браузеры в целом поддерживают наборы шифров TLS Kerberos (некоторые могут поддерживать Kerberos посредством аутентификации SPNEGO, но это не имеет отношения). Кроме того, это также будет работать только в среде, где подходит Kerberos.
« Предоставление потребителю уверенности в том, что он подключается к нужному веб-сайту », на самом деле является одним из ключевых требований для обеспечения безопасности связи между ними и вашим сервером. Используйте сертификат, который они могут проверить, с соответствующими соглашениями об именах (RFC 2818 или более поздний RFC 6125).