Назад | Перейти на главную страницу

Сертификат Let's Encrypt для внутреннего сайта

Я надеюсь прояснить некоторую путаницу в отношении использования Let's Encrypt для внутреннего сайта / приложения. Мне не удалось найти эту информацию где-либо еще.

Я хочу использовать Let's Encrypt в паре с Certbot, чтобы разрешить использование SSL в приложении.

Вопросы:

  1. Требуется ли Let's Encrypt или Certbot доступ в Интернет для выполнения какой-либо части своей работы? Приложение должно работать нормально, даже если доступ в Интернет отключен. Из того, что я могу понять, единственная часть, которая требует подключения к Интернету, - это создание новых сертификатов, когда 90-дневный период подходит к концу.
  2. Let's Encrypt требует действующий домен. Согласно их веб-сайту «для любого сервера, который использует доменное имя, например веб-серверов, почтовых серверов, ...». Я не совсем понимаю, что значит иметь действующий домен. Если на моем сервере установлен Apache, на котором уже размещены другие веб-приложения, учитывается ли какое-либо доменное имя, которое я настроил с помощью Apache, или мне нужно покупать доменное имя?
  3. В предыдущем вопросе я упомянул, что на этом сервере будут другие приложения. Для них не требуется SSL. Если я настроил Let's Encrypt и Certbot на своем сервере, означает ли это, что для этих приложений доступен SSL, или это зависит от имени домена (сайта), используемого для его настройки? Потребуется ли модификация какого-либо из этих других приложений, если отдельное приложение использует SSL?
  4. Гипотетически скажем, что я хочу получить корневой сертификат, но вместо использования его с Certbot я хочу создать и использовать набор промежуточных ключей. Это возможно? Нужно ли будет изменять эти промежуточные ключи каждый раз, когда мы создаем новый корневой ключ?

Прошу прощения, если какой-либо из моих вопросов игнорируется, мои знания в этом отношении очень ограничены. Тем не менее, могут быть даже лучшие варианты для выполнения того, что мне нужно, поэтому я открыт для предложений. Я выбрал Let's Encrypt вместо самозаверяющего сертификата, потому что с этим решением мне не нужно было бы добавлять ЦС на каждый клиентский компьютер, которому нужен доступ.

  1. Let's Encrypt требует подключения к Интернету, но это необходимо для EFF ISRG, который им управляет. Certbot (который работает на вашем компьютере) взаимодействует с Let's Encrypt для выдачи и обновления сертификатов и требует подключения с вашего компьютера.

  2. Действительное доменное имя (в случае Let's Encrypt) - это настроенный вами домен, который может быть разрешен глобальной инфраструктурой DNS - на практике это означает использование купленного доменного имени или поддомена, связанного с купленным доменным именем (хотя это можно получить бесплатные домены из некоторых малоизвестных реестров, таких как www.tk)

  3. Приложения должны быть настроены на использование ключей Let's Encrypt. Все, что делает Certbot, это (а) имеет набор ключей, которые принимают почти все браузеры, и (б) подписывает ключи после проверки того, что владелец ключа также контролирует DNS для подписанного ключа. Хотя Certbot можно использовать с Apache / NGINX, и сделать это очень просто, для запуска какого-либо программного обеспечения не требуется. Аналогичным образом вывод Certbot (в дополнение к необязательным файлам конфигурации, если это необходимо, но никоим образом не является обязательным) представляет собой подписанный открытый ключ. Этот закрытый ключ вместе с закрытым ключом (и любыми промежуточными ключами), который обычно генерирует Let's Encrypt, может использоваться любым программным обеспечением, которое вы используете, которое может использовать SSL, распознает Let's Encrypt как CA и распознает формат файла. Это необходимо настроить в программном обеспечении.

  4. То, что вы спрашиваете, бессмысленно - если у вас есть корневой сертификат, вы не используете Certbot. Вы можете создать свою собственную инфраструктуру CA с помощью библиотеки OpenSSL, и если вы хотите упростить это, есть инструменты pki, такие как easy-rsa. Certbot - это не реестр, это не библиотека SSL, это сценарий для проверки владения доменным именем стандартным совместимым способом и управления сертификатами, предоставляемыми Let's Encrypt. Это бесполезно, если вы настраиваете свой собственный ЦС (центр сертификации - это и есть корневой сертификат).

  1. Да, для выполнения любых задач, связанных с созданием новых сертификатов, и все.
  2. «Действительный домен» означает просто «не IP-адрес». Let's Encrypt, как и большинство эмитентов, не будет использовать IP-адреса в качестве субъекта сертификата; это должен быть домен.
  3. Все, что делает Certbot, - это создает сертификаты для любых доменных имен, которые он видит в вашей конфигурации apache / nginx. Вы можете использовать конфигурацию apache / nginx, чтобы включить SSL или нет, или указать на любой другой сертификат. Certbot будет не заставьте ваш сервер включить SSL или заставьте его использовать свои собственные сертификаты. Хотя он может (необязательно) записать конфигурацию для вас во время установки.
  4. Вы можете сделать любой сертификат промежуточным, если у вас есть закрытый ключ и необязательная кодовая фраза.