Ответ
SSL/TLS сертификат — это цифровой документ, который выполняет две ключевые функции в веб-безопасности: аутентификацию сервера и шифрование данных.
1. Аутентификация: Подтверждает, что сервер (например, example.com) является легитимным, а не поддельным. Это защищает от атак "человек посередине" (MITM).
2. Шифрование: Обеспечивает безопасный канал связи между клиентом (браузером) и сервером, шифруя весь передаваемый трафик (логины, пароли, платежные данные) с помощью алгоритмов (например, AES).
Основные компоненты сертификата:
- Данные субъекта: Доменное имя (Common Name), организация.
- Публичный ключ: Используется для шифрования данных и проверки подписи.
- Цифровая подпись Удостоверяющего Центра (CA): Гарантирует подлинность сертификата.
- Срок действия: Дата начала и окончания валидности.
Практическая проверка в командной строке и коде:
# Проверка сертификата сайта через openssl
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
# Проверка валидности SSL в Python (requests)
import requests
response = requests.get('https://example.com', verify=True) # `verify=True` включает проверку сертификата
print(f"Соединение защищено: {response.url.startswith('https')}")
print(f"Используется HSTS: {'Strict-Transport-Security' in response.headers}")
Типы сертификатов (по уровню проверки):
- DV (Domain Validation): Проверяется только право владения доменом. Быстрая выдача.
- OV (Organization Validation): Дополнительно проверяется юридическое лицо-владелец.
- EV (Extended Validation): Наиболее строгая проверка организации. В браузере отображается название компании в адресной строке.
Итог: Сертификат — основа протокола HTTPS, обеспечивающая конфиденциальность, целостность и аутентификацию в интернете.