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

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

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 25: Строка 25:
* '''самозаверенный''' (чаще говорят "самоподписанный") сертификат - тот, который '''удостоверяет сам себя''' (на манер корневого сертификата), но при этом, конечно, им не является. <br>Кроме того, из-за того, что его невозможно отозвать, возникают различные риски ("атака посредника", итд).
* '''самозаверенный''' (чаще говорят "самоподписанный") сертификат - тот, который '''удостоверяет сам себя''' (на манер корневого сертификата), но при этом, конечно, им не является. <br>Кроме того, из-за того, что его невозможно отозвать, возникают различные риски ("атака посредника", итд).


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


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


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




Строка 41: Строка 43:
* обязательное использование fullchain-сертификатов.
* обязательное использование fullchain-сертификатов.


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




Строка 47: Строка 49:




Вариантов и инструкций в Интернете достаточно много. В том числе [[Алиса управляет Умным домом через Node-RED#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D0.B2.D0.B0.D0.B5.D0.BC_webhook_.D0.BD.D0.B0.D1.80.D1.83.D0.B6.D1.83_.D0.BF.D0.BE_https | у нас на вики]]. В следущих разделах - краткие инструкции по самым популярным сервисам:
Вариантов и инструкций в Интернете достаточно много. В том числе [[Алиса управляет Умным домом через Node-RED#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D0.B2.D0.B0.D0.B5.D0.BC_webhook_.D0.BD.D0.B0.D1.80.D1.83.D0.B6.D1.83_.D0.BF.D0.BE_https | у нас на вики]]. В следующих разделах - краткие инструкции по самым популярным сервисам:




=== certbot ===
=== Lets' Encrypt и certbot ===




Строка 65: Строка 67:




Процедура очень проста и состоит из нескольких шагов:
Процедура очень проста, на этот раз ничего устанавливать не нужно:
# Регистрация на сайте https://sslforfree.com/
# Регистрация на сайте https://sslforfree.com/
# Выбор настроек (обычно ничего трогать не нужно, просто жмите "Next Step")
# Выбор настроек (обычно ничего трогать не нужно, просто жмите "Next Step")
Строка 85: Строка 87:




Существуют специальные  сервисы для проверки валидности (действительности) сертификатов, например: https://www.sslshopper.com/ssl-checker.html
Очень просто: всё работает! :)
 
Кроме того, существуют сервисы для онлайн-проверки валидности сертификатов, например, на [https://www.sslshopper.com/ssl-checker.html SSL Shopper].
<b>
<b>
<pre class="red">
<pre class="red">
Строка 96: Строка 100:




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




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

Версия от 03:31, 5 июня 2021

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

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

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

Файл:Пикча


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lets' Encrypt и certbot

Если вы воспользовались способом с 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, содержащий подписи корневых удостоверяющих центров.

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

Очень просто: всё работает! :)

Кроме того, существуют сервисы для онлайн-проверки валидности сертификатов, например, на SSL Shopper.

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

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

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

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