SSL сертификат. Виды. Генерация. Бесплатная подпись.
Что такое SSL сертификат и как он работает
SSL сертификат состоит из 3 частей: закрытого ключа, открытого ключа и файла подписи. Первый нужен, чтобы зашифровать сообщения. Второй - чтобы расшифровать. То есть, то что зашифровано закрытым ключом, может быть расшифровано только отрытым, причём оба этих ключа генерируются в паре.
Файл подписи генерируются доверенным центром сертификации. Вы отправляете ему свой открытый ключ и проходите процедуру верификации. После этого вы получаете файл подписи, он же сертификат.
Далее всё происходит следующим образом:
- Пользователь заходит на страницу вашего сайта.
- Браузер инициирует установку защищённого соединения.
- Ваш сервер отправляет ему открытый ключ и сертификат.
- Благодаря сертификату браузер пользователя понимает, что открытый ключ принадлежит исключительно владельцу сайта.
- Ваш сервер зашифровывает все данные закрытым ключом и отправляет их пользователю.
- Браузер пользователя расшифровывает все данные открытым ключом и отображает их.
Виды сертификатов
Чтобы пользователи в сети начали доверять вашему сертификату, он должен быть подписан удостоверяющим центром. В противном случае браузеры пользователей отображать предупреждающее сообщение.
Сертификаты бывают 3 уровней доверия: - Domain Validation. Центр верификации проверяет только то, что вы - владелец домена. - Organisation Validation. Центр верификации проверяет регистрационные данные вашей компании. - Extended Validation. Тоже что и Organisation Validation, только в браузере пользователя отображается название вашей компании.
Один сертификат может использоваться для одного или нескольких доменов. Количество и тип доменов зависит от типа сертификата: - Single Domain. Такой сертификат предоставляется только для одного домена. Наиболее популярный тип сертификатов. - Wildcard. Этот тип сертификата выпускается для основного домена и всех его субдоменов. Например, для доменов example.com, www.example.com, cabinet.example.com, ftp.example.com, imap.example.com можно выпустить 1 Wildcard сертификат. Этот тип сертификата используется на крупных проектах, состоящих из большого количества различных сервисов. Например, отдельные поддомены используются для почтовых серверов, служб технической поддержки, файлообменного сервера и т. д. - Multi Domain. Этот тип сертификата выпускается для нескольких разных доменов. Например example.com, second-example.com, cdn.second-example.com. Обычно заверение такого сертификата стоит дороже всего.
Как сгенерировать надёжный сертификат
Сертификат состоит из открытого и закрытого ключей. Закрытый ключ нельзя никому раскрывать. Поэтому лучше сгенерировать сертификат самостоятельно. Для этого можно воспользоваться любым веб-сервером на Linux. Откройте командную строку и выполните следующие шаги:
- Генерируем закрытый ключ. Значение 4096 - длина ключа. Чем оно больше, тем сложнее его взломать.
openssl genrsa -out server.key 4096
- Далее генерируем CSR файл. CSR файл содержит открытый ключ и данные о вашем домене и компании.
openssl req -new -key server.key -out server.csr
- Ответьте на вопросы:
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]: Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
- Следующие вопросы надо пропустить нажатием клавиши Enter
Please enter the following "extra" attributes to be sent with your certificate request A challenge password []:
An optional company name []:
После этого вы получите 2 файла: server.key
и server.csr
.
Заверение открытого ключа удостоверяющим центром
Вам нужно отправить файл server.csr
в центр сертификации для подписи. После прохождения процедуры верификации удостоверяющий центр выдаст вам новый файл. Этот файл и есть сертификат.
Бесплатное заверение сертификата
Компания https://letsencrypt.org может бесплатно заверить ваш сертификат. Есть 2 способа воспользоваться этой услугой: сервис https://www.sslforfree.com/ и программа Certbot. Программа Certbot заверит сертификат для вашего веб-сервера и автоматически продлит его действие.
Тестирование сертификата
Есть специальный сервис, анализирующий не только ваш сертификат, но и возможные уязвимости вашего веб-сервера связанные установкой защищённого соединения https://www.ssllabs.com/ssltest/.
Безопасное соединение между вашим сервером и пользователем является не только важным фактором доверия, но и обязательным юридическим требованием некоторых стран. От наличия зашифрованного соединения зависит от позиции в результатах выдачи поисковых систем. Уделите время этому вопросу, тем более что установка сертификата занимает 5 минут.