Fullchain-сертификаты и как их добыть: различия между версиями
Нет описания правки |
Нет описания правки |
||
| Строка 9: | Строка 9: | ||
Если совсем просто - текстовые файлы с зашифрованными данными, которые позволяют сторонам убедиться, что их "собеседники" на другом конце именно те, за кого себя выдают. Их можно открыть Блокнотом и увидеть что-то вроде: | Если совсем просто - это самые обычные текстовые файлы с зашифрованными данными внутри, которые позволяют сторонам убедиться, что их "собеседники" на другом конце именно те, за кого себя выдают. Их можно открыть Блокнотом и увидеть что-то вроде: | ||
[[Файл:Ssl_cert_sample.jpg]] | [[Файл:Ssl_cert_sample.jpg]] | ||
Таких блоков в файле может быть один или больше, в зависимости от длины цепочки (каждый ключ или подпись - свой блок). | Таких блоков в файле может быть один или больше, в зависимости от длины цепочки (каждый ключ или подпись - свой блок). | ||
Сертификаты можно разделить на степени - или уровни - доверия. | Сертификаты можно разделить на степени - или уровни - доверия. | ||
| Строка 93: | Строка 94: | ||
Очень просто: всё работает! :) | Очень просто: вы скопировали файлы сертификатов в нужную папку, указали вашему веб-серверу пути к ним, и всё работает! :) | ||
| Строка 109: | Строка 103: | ||
Возвращайтесь к началу инструкции, по которой вы его выпускали и проверьте, всё ли вы сделали правильно. Сравните с любой другой инструкцией из Интернета. Возможно, где-то вкралась ошибка, или другое объяснение окажется вам более полным и понятным. | Возвращайтесь к началу инструкции, по которой вы его выпускали и проверьте, всё ли вы сделали правильно. Сравните с любой другой инструкцией из Интернета. Возможно, где-то вкралась ошибка, или другое объяснение окажется вам более полным и понятным. | ||
== Как проверить сертификат на валидность == | |||
=== Онлайн === | |||
Вот несколько популярных сервисов для онлайн-проверки валидности сертификатов: | |||
* [https://www.sslshopper.com/ssl-checker.html SSL Shopper]. | |||
* [https://www.wormly.com/test_ssl Wormly]. | |||
* [https://www.immuniweb.com/ssl/ ImmuniWeb]. | |||
Все три англоязычные, все три бесплатные, для всех трёх надо ввести ваш доменный адрес, но первый выводит более красивые картинки и, возможно, это тоже сыграло роль в его популярности в русскоязычном сегменте. Главное - чтобы все пункты были с зелёными крыжиками ) самоподписанные сертификаты этот сервис тоже определяет. | |||
<b> | |||
<pre class="red"> | |||
Ни в коем случае никогда и никому не отправляйте файлы, которые содержат ваши приватные ключи! | |||
</pre> | |||
</b> | |||
[[Category:FAQ(ЧАВО)]] | [[Category:FAQ(ЧАВО)]] | ||
[[Category:Умный дом]] | [[Category:Умный дом]] | ||
Версия от 05:18, 5 июня 2021
Что такое сертификаты безопасности?
Если совсем просто - это самые обычные текстовые файлы с зашифрованными данными внутри, которые позволяют сторонам убедиться, что их "собеседники" на другом конце именно те, за кого себя выдают. Их можно открыть Блокнотом и увидеть что-то вроде:
Таких блоков в файле может быть один или больше, в зависимости от длины цепочки (каждый ключ или подпись - свой блок).
Сертификаты можно разделить на степени - или уровни - доверия.
- Корневые сертификаты. Выпущены специальными удостоверяющими центрами, имеют наивысшую доверительность. Могут удостоверять собой любые другие виды сертификатов.
- Промежуточные сертификаты. Любые виды цепочек сертификатов. Тоже имеют право удостоверять (подписывать) другие сертификаты.
- Конечные сертификаты. Самая низкая степень доверия. Ими нельзя подписывать никакие другие сертификаты.
То есть, сертификаты составляют вертикальные цепочки, в которых более высоким сертификатом удостоверяется (подписывается) более низкий.
Теперь легко понятны ещё два термина:
- fullchain ("полная цепочка") сертификат - тот, который хранит всю цепочку, включая корневой и конечный сертификаты (и все промежуточные, если они участвуют).
Физически fullchain-сертификат - тот же текстовый файл, который хранит все ключи и подписи, участвующие в цепочке.
При этом блоки не обязаны идти по порядку, что упрощает их сборку "вручную". - самозаверенный (чаще говорят "самоподписанный") сертификат - тот, который удостоверяет сам себя на манер корневого сертификата, но при этом, конечно, им не является.
Кроме того, из-за того, что самоподписанные сертификаты невозможно отозвать, возникают различные риски ("атака посредника" итд).
Самоподписанные сертификаты имеют самую низкую надёжность и их использование недопустимо, когда требуется обеспечить безопасный обмен данными.
Сертификат имеет два ключа:
- Публичный (который можно и нужно раздавать всем)
- Приватный (который ни в коем случае нельзя отдавать/посылать. В противном случае ключи обязаны быть немедленно перевыпущены).
Организацию, выпускающую сертификаты (удостоверяющий центр или любую другую) называют издателем. Каждый издатель выкладывает в общий доступ свой публичный ключ, чтобы любой желающий с его помощью мог проверить, действительно ли сертификат подписан именно этим издателем.
И напоследок, у сертификата есть срок действия, после которого пользоваться им не получится. А также сертификат может быть отозван по каким-то причинам (например, скомпрометирован публичный ключ). Сертификат, у которого всё хорошо, называют валидным (действительным) - и наоборот.
Сертификаты в навыках Алисы
Поскольку безопасность и надёжность - ключевые характеристики облачных сервисов (нередко с обменом данными сразу между несколькими провайдерами), это накладывает современные требования к протоколам и сертификатам, в том числе:
- обязательная работа через HTTPS,
- обязательное использование fullchain-сертификатов.
Благо, сегодня вряд ли удастся найти хостинг без поддержки SSL/HTTPS, а полноценные сертификаты легко можно получать бесплатно (да, те самые Lets' Encrypt, SSL For Free, CAcert итд).
Как получить такой сертификат?
Вариантов и инструкций в Интернете достаточно много. В том числе у нас на вики. В следующих разделах - краткие инструкции по самым популярным сервисам:
Lets' Encrypt и certbot
Потребуется установить программу certbot. Под *nix- системами это сделать проще, но под Windows тоже не потребуется сверхъестественных действий.
Если вы воспользовались способом с certbot, то он создаёт 4 файла:
- cert.pem,
- chain.pem,
- fullchain.pem,
- privkey.pem
Для веб-сервера необходимы два из них: fullchain.pem (тот самый, хранящий всю иерархию подписей) и privkey.pem (ваш конечный ключ).
SSL For Free
Процедура очень проста, на этот раз ничего устанавливать не нужно:
- Регистрация на сайте https://sslforfree.com/
- Выбор настроек (обычно ничего трогать не нужно, просто жмите "Next Step")
- Подтверждение прав на домен, для которого получаете сертификат, любым из способов:
- на почту его владельца (список готовый, посторонний адрес вписать не получится) - вам должна быть доступен один из почтовых ящиков.
- изменением полей DNS (CNAME) - для новичков этот способ самый запутанный, но не требует доступности почты и http.
- скачиванием подтверждающего файла и размещением его в подпапке сайта - к домену должен быть http-доступ из Интернета в момент проверки.
Создаёт три файла:
- ca_bundle.crt
- certificate.crt
- private.key
Получить всю цепочку можно, склеив в любом текстовом редакторе все три файла. Вероятно, дополнительно понадобится найти файл root, содержащий подписи корневых удостоверяющих центров.
Как понять, что всё хорошо
Очень просто: вы скопировали файлы сертификатов в нужную папку, указали вашему веб-серверу пути к ним, и всё работает! :)
Как понять, что всё плохо
При попытке верифицироваться с неполноценным сертификатом вы получите сообщение "Endpoint URL: Некорректный SSL-сертификат".
Возвращайтесь к началу инструкции, по которой вы его выпускали и проверьте, всё ли вы сделали правильно. Сравните с любой другой инструкцией из Интернета. Возможно, где-то вкралась ошибка, или другое объяснение окажется вам более полным и понятным.
Как проверить сертификат на валидность
Онлайн
Вот несколько популярных сервисов для онлайн-проверки валидности сертификатов:
Все три англоязычные, все три бесплатные, для всех трёх надо ввести ваш доменный адрес, но первый выводит более красивые картинки и, возможно, это тоже сыграло роль в его популярности в русскоязычном сегменте. Главное - чтобы все пункты были с зелёными крыжиками ) самоподписанные сертификаты этот сервис тоже определяет.
Ни в коем случае никогда и никому не отправляйте файлы, которые содержат ваши приватные ключи!
