Перейти к содержанию

Fullchain-сертификаты и как их добыть: различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 109: Строка 109:


=== Онлайн ===
=== Онлайн ===


Вот несколько популярных сервисов для онлайн-проверки валидности сертификатов:
Вот несколько популярных сервисов для онлайн-проверки валидности сертификатов:
Строка 123: Строка 124:
</b>
</b>


=== Офлайн (без доступа к Интернету) ===


[[Category:FAQ(ЧАВО)]]
[[Category:FAQ(ЧАВО)]]
[[Category:Умный дом]]
[[Category:Умный дом]]

Версия от 05:22, 5 июня 2021

Черновая версия Cтраница не завершена
Информация на этой странице не проверена до конца. Текст дорабатывается, обозначенные решения могут быть неполными или не совсем точными.

Что такое сертификаты безопасности?

Если совсем просто - это самые обычные текстовые файлы с зашифрованными данными внутри, которые позволяют сторонам убедиться, что их "собеседники" на другом конце именно те, за кого себя выдают. Их можно открыть Блокнотом и увидеть что-то вроде:

Таких блоков в файле может быть один или больше, в зависимости от длины цепочки (каждый ключ или подпись - свой блок).
Порядок блоков не имеет значения.


Сертификаты можно разделить на степени - или уровни - доверия.

  • Корневые сертификаты. Выпущены специальными удостоверяющими центрами, имеют наивысшую доверительность. Могут удостоверять собой любые другие виды сертификатов.
  • Промежуточные сертификаты. Любые виды цепочек сертификатов. Тоже имеют право удостоверять (подписывать) другие сертификаты.
  • Конечные сертификаты. Самая низкая степень доверия. Ими нельзя подписывать никакие другие сертификаты.
То есть, сертификаты составляют вертикальные цепочки, в которых более высоким сертификатом удостоверяется (подписывается) более низкий. 


Теперь легко понятны ещё два термина:

  • fullchain ("полная цепочка") сертификат - тот, который хранит всю цепочку, включая корневой и конечный сертификаты (и все промежуточные, если они участвуют).
    Физически fullchain-сертификат - тот же текстовый файл, который хранит все ключи и подписи, участвующие в цепочке.
    При этом блоки не обязаны идти по порядку, что упрощает их сборку "вручную".
  • самозаверенный (чаще говорят "самоподписанный") сертификат - тот, который удостоверяет сам себя на манер корневого сертификата, но при этом, конечно, им не является.
    Кроме того, из-за того, что самоподписанные сертификаты невозможно отозвать, возникают различные риски ("атака посредника" итд).
Самоподписанные сертификаты имеют самую низкую надёжность и их использование недопустимо, когда требуется обеспечить безопасный обмен данными.


Сертификат имеет два ключа:

  • Публичный (который можно и нужно раздавать всем)
  • Приватный (который ни в коем случае нельзя отдавать/посылать. В противном случае ключи обязаны быть немедленно перевыпущены).
Организацию, выпускающую сертификаты (удостоверяющий центр или любую другую) называют издателем. Каждый издатель выкладывает в общий доступ свой публичный ключ, чтобы любой желающий с его помощью мог проверить, действительно ли сертификат подписан именно этим издателем.


И напоследок, у сертификата есть срок действия, после которого пользоваться им не получится. А также сертификат может быть отозван по каким-то причинам (например, скомпрометирован публичный ключ). Сертификат, у которого всё хорошо, называют валидным (действительным) - и наоборот.

Сертификаты в навыках Алисы

Поскольку безопасность и надёжность - ключевые характеристики облачных сервисов (нередко с обменом данными сразу между несколькими провайдерами), это накладывает современные требования к протоколам и сертификатам, в том числе:

  • обязательная работа через HTTPS,
  • обязательное использование fullchain-сертификатов.

Благо, сегодня вряд ли удастся найти хостинг без поддержки SSL/HTTPS, а полноценные сертификаты легко можно получать бесплатно (да, те самые Lets' Encrypt, SSL For Free, CAcert итд).

Как получить такой сертификат?

Вариантов и инструкций в Интернете достаточно много. В том числе у нас на вики. В следующих разделах - краткие инструкции по самым популярным сервисам:

Lets' Encrypt и certbot

Потребуется установить программу certbot. Под *nix- системами это сделать проще, но под Windows тоже не потребуется сверхъестественных действий.

Если вы воспользовались способом с certbot, то он создаёт 4 файла:

  1. cert.pem,
  2. chain.pem,
  3. fullchain.pem,
  4. privkey.pem

Для веб-сервера необходимы два из них: fullchain.pem (тот самый, хранящий всю иерархию подписей) и privkey.pem (ваш конечный ключ).

SSL For Free

Процедура очень проста, на этот раз ничего устанавливать не нужно:

  1. Регистрация на сайте https://sslforfree.com/
  2. Выбор настроек (обычно ничего трогать не нужно, просто жмите "Next Step")
  3. Подтверждение прав на домен, для которого получаете сертификат, любым из способов:
    • на почту его владельца (список готовый, посторонний адрес вписать не получится) - вам должна быть доступен один из почтовых ящиков.
    • изменением полей DNS (CNAME) - для новичков этот способ самый запутанный, но не требует доступности почты и http.
    • скачиванием подтверждающего файла и размещением его в подпапке сайта - к домену должен быть http-доступ из Интернета в момент проверки.


Создаёт три файла:

  • ca_bundle.crt
  • certificate.crt
  • private.key

Получить всю цепочку можно, склеив в любом текстовом редакторе все три файла. Вероятно, дополнительно понадобится найти файл root, содержащий подписи корневых удостоверяющих центров.

Как понять, что всё хорошо

Очень просто: вы скопировали файлы сертификатов в нужную папку, указали вашему веб-серверу пути к ним, и всё работает! :)

Как понять, что всё плохо

При попытке верифицироваться с неполноценным сертификатом вы получите сообщение "Endpoint URL: Некорректный SSL-сертификат".

Возвращайтесь к началу инструкции, по которой вы его выпускали и проверьте, всё ли вы сделали правильно. Сравните с любой другой инструкцией из Интернета. Возможно, где-то вкралась ошибка, или другое объяснение окажется вам более полным и понятным.

Как проверить сертификат на валидность

Онлайн

Вот несколько популярных сервисов для онлайн-проверки валидности сертификатов:

Все три англоязычные, все три бесплатные, для всех трёх надо ввести ваш доменный адрес, но первый выводит более красивые картинки и, возможно, это тоже сыграло роль в его популярности в русскоязычном сегменте. Главное - чтобы все пункты были с зелёными крыжиками ) самоподписанные сертификаты этот сервис тоже определяет.

Ни в коем случае никогда и никому не отправляйте файлы, которые содержат ваши приватные ключи!

Офлайн (без доступа к Интернету)