Ssl сертификат letsencrypt: Let’s Encrypt — Free SSL/TLS Certificates
SSL-сертификаты от Let’s Encrypt с cert-manager в Kubernetes / Блог компании Флант / Хабр
В этой статье я расскажу о том, как автоматизировать заказ и продление сертификатов от Let’s Encrypt (и не только) для Ingress’а в Kubernetes с помощью дополнения cert-manager. Но начну с краткого введения в суть проблемы.
Немного ликбеза
Протокол HTTP, разработанный в начале 90-х годов прошлого века, вошёл в нашу повседневную жизнь настолько плотно, что тяжело представить хотя бы день без его использования. Однако сам по себе он не обеспечивает даже минимальный уровень безопасности при обмене информации между пользователем и веб-сервером. На помощь приходит HTTPS («S» — secure): используя упаковку передаваемых данных в SSL/TLS, этот протокол неплохо себя зарекомендовал в защите информации от перехвата и активно пропагандируется индустрией.
Например, Google с 2014 года придерживается позиции «HTTPS везде» и даже понижает приоритет сайтам без него в поисковой выдаче. Не обходит стороной эта «пропаганда» и рядовых потребителей: современные браузеры предупреждают своих пользователей о наличии и корректности SSL-сертификатов у посещаемых сайтов.
Стоимость сертификата для личного сайта начинается с десятков долларов. Не всегда покупка его оправдана и целесообразна. Благо, с конца 2015 года доступна бесплатная альтернатива в виде сертификатов Let’s Encrypt (LE). Этот некоммерческий проект был создан энтузиастами из Mozilla для того, чтобы покрыть большую часть интернет-сайтов шифрованием.
Центр сертификации выписывает сертификаты типа domain-validated (самые простые среди имеющихся на рынке) сроком действия в 90 дней, и уже не первый год возможен выпуск так называемого wildcard-сертификата на несколько поддоменов.
Для получения сайтом сертификата используются алгоритмы, описанные в протоколе Automated Certificate Management Environment (ACME), созданного специально для Let’s Encrypt. При его использовании подтверждение владения доменом осуществляется запросами через размещение определенного HTTP-кода (называется HTTP-01) или установку DNS-записей (DNS-01) — подробнее о них будет ниже.
Cert-manager
Cert-manager — специальный проект для Kubernetes, представляющий собой набор CustomResourceDefinitions (отсюда ограничение на минимально поддерживаемую версию K8s — v1.12) для конфигурации CA (удостоверяющих центров) и непосредственного заказа сертификатов. Установка CRD в кластер тривиальна и сводится к применению одного YAML-файла:
kubectl create ns cert-manager
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v0.13.0/cert-manager.yaml
(Существует также и возможность установки с помощью Helm.)
Для инициирования процедуры заказа в кластере должны быть объявлены ресурсы центров сертификации (CA): Issuer
или ClusterIssuer
, — которые используются для подписи CSR (запросов на выпуск сертификата). Отличие первого ресурса от второго — в области видимости:
-
Issuer
может использоваться в рамках одного пространства имен, -
ClusterIssuer
является глобальным объектом кластера.
Практика с cert-manager
№1. Самоподписанный сертификат
Начнем с простейшего случая — заказа самоподписанного сертификата. Такой вариант довольно распространен, например, для динамических тестовых окружений для разработчиков или же в случае использования внешнего балансировщика, терминирующего SSL-трафик.
Ресурс Issuer
будет выглядеть так:
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: selfsigned
spec:
selfSigned: {}
А чтобы выпустить сертификат, необходимо описать ресурс Certificate
, где указывается, как произвести выпуск (см. раздел issuerRef
ниже) и где размещен приватный ключ (поле secretName
). После этого в Ingress потребуется сослаться на этот ключ (см. раздел tls
в spec
):
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: selfsigned-crt
spec:
secretName: tls-secret
issuerRef:
kind: Issuer
name: selfsigned
commonName: "yet-another. website"
dnsNames:
- "yet-another.website"
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: app
spec:
tls:
- hosts:
- "yet-another.website"
secretName: tls-secret
rules:
- host: "yet-another.website"
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 8080
Через несколько секунд после добавления этих ресурсов в кластер сертификат будет выписан. Увидеть соответствующий отчёт можно в выводе команды:
kubectl -n app describe certificate selfsigned-crt
...
Normal GeneratedKey 5s cert-manager Generated a new private key
Normal Requested 5s cert-manager Created new CertificateRequest resource "selfsigned-crt-4198958557"
Normal Issued 5s cert-manager Certificate issued successfully
Если посмотреть на сам ресурс секрета, то в нём лежат:
- приватный ключ
tls.key
, - корневой сертификат
ca. crt
, - наш самоподписанный сертификат
tls.crt
.
Содержимое этих файлов можно увидеть с помощью утилиты openssl
, например, так:
kubectl -n app get secret tls-secret -ojson | jq -r '.data."tls.crt"' | base64 -d | openssl x509 -dates -noout -issuer
notBefore=Feb 10 21:01:59 2020 GMT
notAfter=May 10 21:01:59 2020 GMT
issuer=O = cert-manager, CN = yet-another.website
Стоит отметить, что в общем случае сертификату, выписанному с помощью такого Issuer
, подключаемые клиенты доверять не будут. Причина проста: он не имеет CA (см. примечание на сайте проекта). Чтобы этого избежать, нужно указать в Certificate
путь до файла секрета, где содержится ca.crt
. Таковым может быть и корпоративный CA организации — чтобы подписать выпускаемые для Ingress сертификаты ключом, уже используемым для нужд других серверных служб/информационных систем.
№2. Сертификат Let’s Encrypt с HTTP-валидацией
Для выпуска сертификатов LE, как упоминалось ранее, доступны два типа подтверждения владения доменом: HTTP-01 и DNS-01.
Первый подход (HTTP-01) заключается в запуске небольшого веб-сервера отдельным deployment’ом, который будет отдавать в интернет по ссылке http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>
некие данные, запрашиваемые с сервера сертификации. Следовательно, этот метод подразумевает доступность Ingress’а извне по 80 порту и разрешение DNS-записи домена в публичные IP-адреса.
Второй вариант проверки выпускаемого сертификата (DNS-01) исходит из наличия API к DNS-серверу, где размещены записи домена. Issuer с помощью указанных токенов создает TXT-записи на домене, которые потом получает в ходе подтверждения ACME-сервер. Среди официально поддерживаемых DNS-провайдеров — CloudFlare, AWS Route53, Google CloudDNS и другие, в том числе и собственная реализация (acme-dns).
Примечание: у Let’s Encrypt существуют довольно строгие лимиты на запросы к ACME-серверам. Чтобы не попасть в длительный бан, для отладки рекомендуется использовать тип сертификата letsencrypt-staging (отличие только в ACME-сервере).
Итак, опишем ресурсы:
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
class: nginx
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: le-crt
spec:
secretName: tls-secret
issuerRef:
kind: Issuer
name: letsencrypt
commonName: yet-another.website
dnsNames:
- yet-another.website
Обратите внимание, что в качестве server
у acme
(в Issuer
) указан адрес staging-сервера. Заменить его на боевой можно будет позже.
Применив эту конфигурацию, проследим весь путь заказа:
- Создание
Certificate
породило новый ресурсCertificateRequest
:kubectl -n app describe certificate le-crt ... Created new CertificateRequest resource "le-crt-1127528680"
- В его описании — отметка о создании
Order
:kubectl -n app describe certificaterequests le-crt-1127528680 … Created Order resource app/le-crt-1127528680-1805948596
- В
Order
описано, с какими параметрами проходит проверка и какой у неё текущий статус. Такая проверка осуществляется ресурсомChallenge
:kubectl -n app describe order le-crt-1127528680-1805948596 … Created Challenge resource "le-crt-1127528680-1805948596-1231544594" for domain "yet-another.website"
- Наконец, в подробностях этого ресурса содержится информация о статусе самой проверки:
kubectl -n app describe challenges le-crt-1127528680-1805948596-1231544594 ... Reason: Successfully authorized domain ... Normal Started 2m45s cert-manager Challenge scheduled for processing Normal Presented 2m45s cert-manager Presented challenge using http-01 challenge mechanism Normal DomainVerified 2m22s cert-manager Domain "yet-another.website" verified with "http-01" validation
Если все условия были соблюдены (т. е. домен доступен снаружи, нет бана со стороны LE…) — меньше, чем через минуту, сертификат будет выпущен. В случае успеха в выводе describe certificate le-crt
появится запись Certificate issued successfully
.
Теперь можно смело менять адрес сервера на боевой (https://acme-v02.api.letsencrypt.org/directory
) и перезаказывать уже настоящие сертификаты, подписанные не Fake LE Intermediate X1
, а Let's Encrypt Authority X3
.
Для этого сначала потребуется удалить ресурс Certificate
: иначе никакие процедуры заказа не активируются, потому что сертификат уже есть и он актуален. Удаление секрета приведет к его немедленному возврату с сообщением в describe certificate
:
Normal PrivateKeyLost 44s cert-manager Lost private key for CertificateRequest "le-crt-613810377", deleting old resource
Остается применить «боевой» манифест для Issuer
с уже описанным выше Certificate
(он не изменился):
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
class: nginx
После получения сообщения Certificate issued successfully
в describe
проверим его:
kubectl -n app get secret tls-secret -ojson | jq -r '.data."tls.crt"' | base64 -d | openssl x509 -dates -noout -issuer
notBefore=Feb 10 21:11:48 2020 GMT
notAfter=May 10 21:11:48 2020 GMT
issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
№3. Wildcard LE с валидацией через DNS
Усложним задачу, выписав сертификат сразу на все поддомены сайта и воспользовавшись на этот раз DNS-проверкой (через CloudFlare).
Для начала получим в панели управления CloudFlare токен для работы через API:
- Profile → API Tokens → Create Token.
- Выставляем права доступа следующим образом:
- Permissions:
- Zone — DNS — Edit
- Zone — Zone — Read
- Zone Resources:
- Permissions:
- Копируем полученный после сохранения токен (например:
y_JNkgQwkroIsflbbYqYmBooyspN6BskXZpsih5M
).
Создадим Secret, в котором будет храниться этот токен, и сошлемся на него в Issuer:
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token
type: Opaque
stringData:
api-token: y_JNkgQwkroIsflbbYqYmBooyspN6BskXZpsih5M
---
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt
solvers:
- dns01:
cloudflare:
email: [email protected]
apiTokenSecretRef:
name: cloudflare-api-token
key: api-token
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: le-crt
spec:
secretName: tls-secret
issuerRef:
kind: Issuer
name: letsencrypt
commonName: yet-another.website
dnsNames:
- "yet-another.website"
- "*.yet-another.website"
(Не забудьте про использование staging, если экспериментируете!)
Пройдем процедуру подтверждения владения доменом:
kubectl -n app describe challenges.acme.cert-manager.io le-crt-613810377-1285319347-3806582233
...
Status:
Presented: true
Processing: true
Reason: Waiting for dns-01 challenge propagation: DNS record for "yet-another.website" not yet propagated
State: pending
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Started 54s cert-manager Challenge scheduled for processing
Normal Presented 53s cert-manager Presented challenge using dns-01 challenge mechanism
В панели появится TXT-запись:
… а через некоторое время статус сменится на:
Domain "yet-another.website" verified with "dns-01" validation
Убедимся в том, что сертификат валиден для любого поддомена:
kubectl -n app get secret tls-secret -ojson | jq -r '.data."tls.crt"' | base64 -d | openssl x509 -dates -noout -text |grep DNS:
DNS:*.yet-another.website, DNS:yet-another.website
Валидация по DNS, как правило, происходит не быстро, так как для большинства DNS-провайдеров характерен период обновления данных, показывающий, сколько времени пройдёт с момента изменения DNS-записи до фактического обновления всех DNS-серверов провайдера. Однако стандарт ACME предусматривает и комбинацию двух вариантов проверок, что можно использовать для ускорения получения сертификата на основной домен. В этом случае описание Issuer
будет следующим:
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt
solvers:
- selector:
dnsNames:
- "*.yet-another.website"
dns01:
cloudflare:
email: [email protected]
apiTokenSecretRef:
name: cloudflare-api-token
key: api-token
- selector:
dnsNames:
- "yet-another.website"
http01:
ingress:
class: nginx
Если применить эту конфигурацию, будут созданы два ресурса Challenge
:
kubectl -n app describe orders le-crt-613810377-1285319347
…
Normal Created 3m29s cert-manager Created Challenge resource "le-crt-613810377-1285319347-3996324737" for domain "yet-another.website"
Normal Created 3m29s cert-manager Created Challenge resource "le-crt-613810377-1285319347-1443470517" for domain "yet-another.website"
№4. Использование специальных аннотаций Ingress
Помимо прямого пути по созданию сертификатов в cert-manager есть возможность воспользоваться компонентом под названием ingress-shim и явно не создавать ресурсы Certificate
. Идея заключается в том, что с помощью специальных аннотаций Ingress’а сертификат будет автоматически заказан с помощью указанного в них Issuer
. В результате получается примерно следующий ресурс Ingress’а:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
tls:
- hosts:
- "yet-another.website"
secretName: tls-secret
rules:
- host: "yet-another.website"
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 8080
Для корректной работы тут достаточно только наличия Issuer’а, то есть создавать на одну сущность меньше.
Кроме того, существует устаревшая аннотация kube-lego — kubernetes.io/tls-acme: "true"
, — которая требует задания Issuer
по умолчанию при установке cert-manager с помощью параметров Helm (или в параметрах запуска контейнера менеджера).
Мы в компании не пользуемся этими вариантами и не можем их посоветовать ввиду непрозрачности используемых подходов к заказу SSL-сертификатов (а заодно — и к возникающих разного рода проблем), но все же решили упомянуть в статье для более полной картины.
Вместо заключения
Путём несложных манипуляций с CRD мы научились выписывать автопродляемые, самоподписанные и бесплатные SSL-сертификаты от проекта Let’s Encrypt для доменов сайтов, запущенных в рамках Ingress’ов в Kubernetes-кластерах.
В статье приведены примеры решения наиболее частых в нашей практике задач. Однако функции cert-manager не ограничиваются описанными выше возможностями. На сайте утилиты можно найти примеры работы с другими сервисами — например, связка с Vault или же использование внешних выпускающих центров (issuers).
P.S.
Читайте также в нашем блоге:
Установка бесплатного SSL-сертификата Let’s Encrypt на REG.RU — V0LK EST NAROD
На сегодняшний день SSL-сертификат — это уже не просто дань моде, а реальная необходимость. Как нибудь, может быть, я напишу развёрнутую статью про SSL-сертификаты, их отличия и особенности. Ну а пока небольшая инструкция по установке бесплатного SSL-сертификата Let’s Encrypt на популярный хостинг REG.RU. Хоть данный хостинг и предлагает установку бесплатного сертификата, но я не стал разбираться, бесплатный он навсегда или только на первый год, и установил привычный мне Let’s Encrypt. Поехали!
Создаём сертификат Let’s Encrypt
Если вы пользуетесь ОС Linux, то можете просто следовать далее. Для Windows я написал свою инструкцию. Вообще она не только для Windows, а подходит для любой системы, т.к. для её выполнения нужен только браузер.
Открываем консоль (терминал) и пишем команду (скачиваем утилиту Certbot):
wget https://dl.eff.org/certbot-auto
Затем делаем файл испольняемым следующей командой (выполняем команду в каталоге, куда он был скачан):
chmod a+x certbot-auto
Установку можно произвести также через сайт https://certbot.eff.org, но описанный выше способ мне кажется немного быстрее.
Запускаем:
./certbot-auto certonly --manual
Вводим свой пароль и получаем предложение указать домен, для которого необходимо выпустить сертификат.
На вопрос «Are you OK with your IP being logged?» отвечаем утвердительно (вводим «Y») и нажимаем Enter.
Далее получаем что-то вроде этого:
Create a file containing just this data:
SA477jjpMbZDpOLyihqvEg7f_SlnRxpEwVssEc1BL-g.-bvdOoWdtB6IHyhyGyj83M81syFi_mxpIZosoU7v3wI
And make it available on your web server at this URL:
http://mysite.ru/.well-known/acme-challenge/SA477jjpMbZDpOLyihqvEg7f_SlnRxpEwVssEc1BL-g
На хостинге, в корне сайта, создаём каталог «.well-known», внутри него «acme-challenge», в нём файл (в моём случае) «SA477jjpMbZDpOLyihqvEg7f_SlnRxpEwVssEc1BL-g» с содержанием «SA477jjpMbZDpOLyihqvEg7f_SlnRxpEwVssEc1BL-g.-bvdOoWdtB6IHyhyGyj83M81syFi_mxpIZosoU7v3wI».
Обращаю внимание, что в вашем случае файл и его содержание будут иметь другой вид, это лишь пример! Далее необходимо убедиться, что файл доступен, для этого вводим полный пусть к нему в строку браузера, например: http://mysite.ru/.well-known/acme-challenge/SA477jjpMbZDpOLyihqvEg7f_SlnRxpEwVssEc1BL-g. В результате вы должны увидеть содержимое файла в вашем браузере.
Если всё было сделано правильно, то вы увидите примерно такой вывод:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mysite.ru/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mysite.ru/privkey.pem
Здесь говорится о том, что сертификат успешно получен и файлы лежат по вышеуказанному пути. Чуть позже они нам потребуются.
Поздравляю! Вы только что вручную выпустили сертификат Let’s Encrypt, теперь самое время перейти к его установке на наш хостинг REG.RU.
Установка Let’s Encrypt на REG.RU
Логинимся в панель, в верхнем правом углу нажимаем на имя аккаунта, затем на Мои хостинг и услуги.
На открывшейся странице выбираем услугу хостинга. Здесь переходим в Панель управления хостингом (зелёная кнопка с соотв. надписью). В моём случае используется панель ISPmanager, поэтому далее описываю для неё.
После успешного входа в панель переходим в раздел SSL сертификаты. Жмём сверху кнопку Создать.
В открвшемся окне меняем тип сертификата с «самоподписанный» на «существующий».
Перед нами 4 поля:
- Приватный ключ
- Сертификат
- Пароль
- Цепочка сертификатов
А вот здесь нам потребуются наши файлы сертификата. Можно воспользоваться любым текстовым редактором, но проще и быстрее через терминал:
cd /etc/letsencrypt/live/mysite.ru
cat privkey.pem
Результат вывода аккуратно выделяем и копируем (через правую кнопку мыши) в поле «Приватный ключ».
cat cert.pem
Копируем в поле «Сертификат».
Поле «Пароль» пропускаем.
cat chain.pem
Копируем в поле «Цепочка сертификатов». Жмём Ok.
На данном этапе сертификат подключен, но пока не активен для самого домена, теперь нужно его включить.
Переходим в раздел WWW домены, выбираем наш домен и ставим галочку напротив SSL. Ok.
Теперь, если всё было сделано правильно, перейдя в раздел SSL сертификаты, вы должны наблюдать жёлтую лампочку напротив вашего сертификата, а ваш сайт должен стать доступен по адресу https://mysite.ru. Для проверки правильности установки сертификата можете воспользоваться сервисом https://www.sslshopper.com/ssl-checker.html.
Не забудьте настроить редирект с http на https и с www на без www (или наоборот, как вам нравится). Об этом я напишу в отдельной заметке.
Бесплатные SSL от Let’s Encrypt: плюсы и минусы Host4Biz
Теперь для всех клиентов нашей услуги Виртуальный хостинг доступны бесплатные SSL-сертификаты Let’s Encrypt в панели управления. Что это такое, почему они бесплатные, для каких сайтов подходят и как их можно установить — вы узнаете из этой статьи.
Поисковые системы и разработчики браузеров всячески стимулируют вебмастеров к установке SSL-сертификатов на сайты. И это правильно, ведь передача данных между серверами по протоколу HTTP ненадежна и злоумышленники могут перехватить передаваемые пароли, адреса электронной почты, телефонные номера и др.
Чтобы ускорить внедрение SSL, с прошлого года поисковые роботы Google стали понижать позиции сайтов без SSL в поисковой выдаче, а интернет-браузеры Mozilla Firefox и Google Chrome помечают их как ненадежные. Поэтому владельцам сайтов необходимо устанавливать на свои сайты SSL-сертификаты.
Что такое SSL-сертификат и для чего он необходим
SSL — это протокол, то есть набор правил, по которому информация шифруется и передается между серверами по безопасному соединению.
Для установки такого соединения нужны несколько специальных файлов, они и называются SSL-сертификатом.
Сертификаты бывают разных видов:
- с проверкой доменного имени — подходят для личных сайтов, маленьких блогов;
- с проверкой организации — используются для интернет-магазинов, социальных сетей;
- с расширенной проверкой документов — для больших компаний, банков, инвестиционных фондов и т.д.
В зависимости от сложности проверки, поддержки браузерами, уровня доверия и прочих факторов, стоимость сертификатов различна. Однако, владельцы небольших интернет-проектов не всегда готовы тратиться на сертификат безопасности. И как раз для таких случаев есть сертификаты от Let’s Encrypt.
Немного истории
Let’s Encrypt — некоммерческий доверенный центр сертификации, который предлагает сертификаты SSL бесплатно. При этом выпуск сертификатов идет в автоматическом режиме.
Центр был создан в 2014 году для того, чтобы большинство сайтов интернета смогли перейти к безопасному протоколу HTTPS.
Этот проект спонсируют такие компании как Mozilla, Google Chrome, Cisco и Facebook. Несмотря на то, что проект некоммерческий, он использует самые современные методы шифрования данных, поэтому сертификаты от Let’s Encrypt пользуются доверием.
До этого года Let’s Encrypt не выпускал wildcard сертификаты, а с 13 марта такие сертификаты наконец-то стали доступны для пользователей.
Это означает, что теперь есть возможность выпустить один сертификат для вашего домена и защитить все субдомены третьего и далее уровней.
Кому подойдут SSL- сертификаты Let’s Encrypt
Let’s Encrypt выпускает сертификаты начального уровня с проверкой домена. Они подойдут для личных блогов, форумов, портфолио и посадочных страниц.
Этот сертификат подтверждает принадлежность домена владельцу сайта, но проверка регистрации компании не проводится. Сообщений о подозрительном сайте посетитель не увидит, а злоумышленники не смогут перехватить данные, которые вводятся на сайте.
Однако, не рекомендуется использовать такие сертификаты для сайтов предприятий малого и среднего бизнеса, для повышения доверия пользователей к их сайтам существуют сертификаты с проверкой организации.
А для государственного предприятия, банка или крупного интернет магазина нужен SSL-сертификат с расширенной проверкой документов.
Далее рассмотрим плюсы и минусы сертификатов Let’s Encrypt.
Плюсы и минусы сертификатов Let’s Encrypt
Плюсы
Они бесплатны
Это существенное преимущество для тех владельцев сайтов, которые не могут позволить себе платный сертификат, однако стремятся обеспечить своим посетителям безопасное соединение.
Let’s Encrypt не потребует денег ни за установку, ни за продление сертификата. Если вы сами захотите — можете сделать пожертвование на сайте проекта.
Автоматический выпуск сертификатов
Вы можете разрешить клиенту Let’s Encrypt самостоятельно скачивать, устанавливать и продлевать сертификаты. Но если вы переживаете за настройки своего сервера, то можете делать это вручную.
Надежность и безопасность
Несмотря на то, что SSL-сертификаты Let’s Encrypt бесплатны — это не означает, что уровень шифрования у них ниже, чем у платных сертификатов. Let’s Encrypt придерживается самых высоких стандартов шифрования и предлагает сертификаты высокого уровня надежности.
Что касается минусов этих сертификатов, то их также необходимо принимать во внимание.
Минусы
Нет расширенных проверок
При выпуске сертификата, проверяется только принадлежность домена клиенту. Таким образом кто угодно в интернете может создать себе сертификат с названием любой организации и делать вид, что сайт имеет к ней отношение.
Сертификаты выпускаются всего на 90 дней
Это скорее неудобство для пользователей, нежели существенный недостаток сертификата. Дело в том, что выпуская сертификат всего на 90 дней, а не на 1 год, центр Let’s Encrypt старается уменьшать ущерб от тех ключей и сертификатов, которые были выпущены по ошибке. То есть за более короткий срок действия такие сертификаты нанесут меньший ущерб, чем за год.
Проблемы с совместимостью
Сертификаты Let’s Encrypt несовместимы с ранними версиями Windows XP. Кроме того, могут возникнуть проблемы совместимости со старыми версиями мобильного ПО. Чтобы удостовериться в том, что с вашей операционной системой или мобильной прошивкой не будет проблем — проверьте, есть ли они в списке совместимых устройств и программ на сайте Let’s Encrypt.
Отсутствует поддержка клиентов
На сайте Let’s Encrypt вы не найдете чата или телефонной поддержки, только техническую документацию на английском языке. Некоторые вопросы касательно этих сертификатов обсуждаются на тематических форумах, и там можно найти ответы на интересующие вас вопросы.
Нет гарантии и денежной компенсации
В отличие от коммерческих центров сертификации, Let’s Encrypt не предоставляет никаких гарантий. Если сертификат будет взломан или кто-нибудь потеряет деньги из-за сертификата, выданного мошенническому сайту, то убытки возмещены не будут.
Как установить
Заказать и установить сертификат Let’s Encrypt очень просто. Для этого надо выполнить несколько простых действий в панели управления ISPmanager:
В разделе панели SSL-сертификаты нажимаем на кнопку Let’s Encrypt:
Проверяем параметры сертификата и нажимаем кнопку ОК.
Все, сертификат установлен и готов к работе.
Делаем выводы
Перед установкой бесплатного SSL-сертификата от Let’s Encrypt необходимо взвесить все плюсы и минусы.
Если данный вид сертификата вам подходит, минусы неактуальны, а вопрос только в том, устанавливать бесплатный сертификат или не устанавливать никакого вообще — то лучшим решением будет сертификат все-таки установить.
С другой же стороны, стоимость коммерческих сертификатов сейчас невысока и можно заказать себе сертификат на год, с гарантией и хорошей браузерной совместимостью по цене, сравнимой со стоимостью домена.
В том случае, если вы еще не установили SSL-сертификат на свой сайт, а сертификаты от Let’s Encrypt вам не подходят, то вы можете почитать об SSL сертификатах на нашей странице услуги и выбрать тот из них, который больше всего подходит для вашего проекта.
При подготовке материала использованы изображения с сайта Freepik.com
Получаем и обновляем SSL сертификат Let’s Encrypt
29 Апрель 2016
Obtaining and renewing Let’s Encrypt SSL certificate
Не так давно в промышленную эксплуатацию был запущен центр сертификации Let’s Encrypt.
От всех прочих провайдеров SSL сертификатов его отличает две главные особенности.
Во-первых, Let’s Encrypt позволяет получить (и в ряде случаев даже установить) полученный сертификат в вашу систему в автоматическом режиме, а, во-вторых, сделать это совершенно бесплатно.
Сочетание этих двух факторов даёт возможность легко получить, быстро установить и забыть об обновлении полученного (одного или нескольких) SSL сертификатов в будущем.
Итак, небольшой how-to который был подготовлен на базе настройки этого самого блога.
Имеем сервер на FreeBSD где, помимо прочего, работает веб-сервер Lighttpd.
root@beta:~ # uname -v
FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016 [email protected]:/usr/obj/usr/src/sys/GENERIC
root@beta:~ # lighttpd -v
lighttpd/1.4.39 (ssl) - a light and fast webserver
Build-Date: Mar 3 2016 22:22:13
Удобнее всего это сделать из дерева портов системы.
root@beta:~ # cd /usr/ports/security/py-certbot/
root@beta:/usr/ports/security/py-certbot # make install clean
Сам сайт и система управления им расположены по стандартными системным путям.
root@beta:~ # cd /usr/local/www/kostikov.co/
root@beta:/usr/local/www/kostikov.co # ll
total 104
-rw-r--r-- 1 root wheel 8196 7 сен 2015 .DS_Store
-rw-r--r-- 1 root wheel 80 7 сен 2015 .gitignore
-rw-r--r-- 1 root wheel 1272 7 сен 2015 COPYRIGHT.txt
-rw-r--r-- 1 root wheel 35148 7 сен 2015 LICENSE.txt
drwxr-xr-x 9 root wheel 512 7 сен 2015 admin/
-rw-r--r-- 1 root wheel 748 7 сен 2015 admin.php
drwxrwxrwx 5 root wheel 512 27 апр 17:04 content/
-rw-r--r-- 1 root wheel 2072 7 сен 2015 feed.php
-rw-r--r-- 1 root wheel 766 7 сен 2015 index.php
-rw-r--r-- 1 root wheel 21268 7 сен 2015 install.php
drwxr-xr-x 2 root wheel 512 7 сен 2015 languages/
drwxr-xr-x 18 root wheel 512 7 сен 2015 plugins/
-rw-r--r-- 1 root wheel 1239 7 сен 2015 sitemap.php
drwxr-xr-x 7 root wheel 512 7 сен 2015 themes/
-rw-r--r-- 1 root wheel 11690 7 сен 2015 update.php
Добавим в конфигурацию Lighttpd секцию для обслуживания сайта.
root@beta:~ # cat /usr/local/etc/lighttpd/lighttpd.conf
...
# -- kostikov.co
$HTTP["host"] == "kostikov.co" {
server.document-root = "/usr/local/www/kostikov.co/"
}
...
Ввиду того, что мы уже имеем развёрнутый и работающий веб-сервер, воспользуемся для получения сертификата методом webroot (подробнее о доступных методах см. certbot -h).
root@beta:~ # certbot certonly --agree-tos --email [email protected] --webroot -w /usr/local/www/kostikov.co/ -d kostikov.co -d www.kostikov.co
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/usr/local/etc/letsencrypt/live/kostikov.co/fullchain.pem. Your
cert will expire on 2016-07-26. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- If you like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Немного об опциях:
- certonly — получаем сертификат, но не устанавливаем его автоматически;
- —agree-tos — соглашаемся с условиями сервиса;
- —email — предоставляем контактный e-mail, это обязательный параметр;
- —webroot — подтверждаем право владения доменом через запрос кода по HTTP;
- -w — путь к контенту сайта для временного размещения кода;
- -d — домены, которые будет подтверждать данный сертификат.
В данном случае, мы выписываем в один сертификат сразу два доменных имени. Let’s Encrypt позволяет включить в него до 100 доменов одновременно.
К сожалению, и это первый относительный минус данного центра сертификации, он не поддерживает т.н. wildcard, которые позволяют покрыть все домены более низкого уровня по отношению к базовому.
Как видно, клиент сообщил об успешном получении нами SSL сертификата для запрошенных доменов и сообщил путь к месту его размещения.
root@beta:~ # cd /usr/local/etc/letsencrypt/live/kostikov.co/
root@beta:/usr/local/etc/letsencrypt/live/kostikov.co # ll
total 0
lrwxr-xr-x 1 root wheel 35 27 апр 17:52 cert.pem@ -> ../../archive/kostikov.co/cert1.pem
lrwxr-xr-x 1 root wheel 36 27 апр 17:52 chain.pem@ -> ../../archive/kostikov.co/chain1.pem
lrwxr-xr-x 1 root wheel 40 27 апр 17:52 fullchain.pem@ -> ../../archive/kostikov.co/fullchain1.pem
lrwxr-xr-x 1 root wheel 38 27 апр 17:52 privkey.pem@ -> ../../archive/kostikov.co/privkey1.pem
Обратите внимание, что предложенный путь ведёт на ссылки на сертификаты (симлинки), а не сами файлы, которые хранятся в другом месте.
root@beta:/usr/local/etc/letsencrypt/live/kostikov.co # cd ../../archive/kostikov.co/
root@beta:/usr/local/etc/letsencrypt/archive/kostikov.co # ll
total 10
-rw-r--r-- 1 root wheel 1814 27 апр 17:52 cert1.pem
-rw-r--r-- 1 root wheel 1647 27 апр 17:52 chain1.pem
-rw-r--r-- 1 root wheel 3461 27 апр 17:52 fullchain1.pem
-rw-r--r-- 1 root wheel 1704 27 апр 17:52 privkey1.pem
Здесь мы видим автоматически сгенерированный набор сертфикатов и их индекс — версию (в данном случае 1):
- cert1.pem — сам публичный сертификат для наших доменов;
- chain1.pem — корневые сертификаты центра сертификации Let’s Encrypt;
- fullchain1.pem — полная цепочка сертификатов, включающая cert1.pem и chain1.pem;
- privkey1.pem — закрытый ключ сертификата.
В связи с тем, что Lighttpd требует предоставления файла сертификата,
Переезжаем на wildcard сертификаты Let’s Encrypt
30 Март 2018
Moving on Let’s Encrypt wildcard certificates
Let’s encrypt за относительно короткий промежуток времени стал самым популярным в мире центром сертификации (CA) по выпуску TLS-сертификатов. Причиной тому является, во-первых, бесплатность получения сертификата для любого желающего и, во-вторых, удобный механизм его выпуска и продления, когда благодаря множеству способов и программных средств данный процесс можно легко автоматизировать.
Сегодня Let’s Encrypt занимает свыше 2/3 общего объёма видимых в Интернет TLS-сертификатов и доля его растёт.
Однако, до недавнего времени эта динамика несколько сдерживалась отсутствием возможности получить т.н. wildcard-сертификат, то есть такой, который покрывает все поддомены в рамках существующего домена более высокого уровня. Несмотря на то, что стандартный механизм Let’s Encrypt позволяет иметь в одном сертификате до 200 различных доменов через расширени TLS SNI, это далеко не всегда удобно, ведь для каждого нового домена приходилось включать его в состав уже имеющегося сертификата или выпускать новый.
Ситуация изменилась в марте 2018 года, когда был официально запущен новый протокол и API к нему ACMEv2, одним из ключевых новшеств которого стало появление возможности выпуска wildcard-сертификатов.
Новинка не имеет обратной совместимости с предыдущей версией ACMEv1. В этой связи все ныне действительные сертификаты не могут быть конвертированы в wildcard-версию. Для получения такого сертификата необходим повторный выпуск при помощи одного из поддерживающих новый протокол клиента, включая и официальный certbot, который начиная с версии 0.22 может работать по ACMEv2.
Автор давно, широко и активно использует сертификаты Let’s encrypt в своих проектах и о многих аспектах использования неоднократно писалось на страницах этого блога, как то, к примеру, работа механизмов HPKP и DANE. В этой связи, миграция на wildcard-сертификаты может стать проблематичной.
Рассмотрим, как это можно осуществить с минимальными затратами и без разрывов в обслуживании клиентов, использующих TLS с сертификатами от Let’s Encrypt.
Традиционно в клиентах Let’s encrypt пооддерживается несколько способов подтверждения владения доменом, которое необходимо для авторизации выпуска TLS-сертификата. Все они предполагают размещение специального проверочного кода, доступного по протоколу HTTP или посредством DNS-запроса, для каждого из доменов, который предполагается включить в выпускаемый сертификат.
Понятно, что для wildcard-сертификатов такой подход не имеет смысла, поскольку невозможно заранее знать, какие поддомены и когда будут созданы. Следовательно, требуется механизм, который удостоверит владение доменом, для которого выпускается такой сертификат. На момент написания статьи единственным способом предлагаемым ACMEv2 является метод dns-01, основанный на подтверждении владения (управления) DNS-сервером, который поддерживает данный домен.
При этом клиент Let’s Encrypt размещает специальную TXT-запись формата
_acme-challenge.my.domain. 300 IN TXT "HhY6js...7hdGj6"
и обращается к ней для соответствующей проверки.
В официальном клиенте Let’s encrypt certbot это реализуется через встроенное расширение DNS Plugins. Они представляют собой набор API к популярным DNS-хостингам, таким, например, как Cloudflare или Amazon Route53, которые позволяют разместить проверочный код в DNS-зоне домена и осуществить требуемую авторизацию выпуска TLS-сертификата без участия пользователя.
Для использующих свой собственный первичный DNS сервер, к числу которых относится и автор, реализован и метод с использованием механизма DNS TSIG который описан в стандарте RFC2845 и представляющий собой механизм аутентификации при динамическом обновении DNS записей (см. текущую редакцию стандарта RFC2136).
Рассмотрим практическую реализацию миграции на wildcard-сертификаты на уже действующей системе использующий протокол предыдущего поколения ACMEv1.
Напомню, что автор использует DN
Бесплатные Wildcard SSL от Let’s Encrypt
С версии 5.147.0 через ISPmanager можно выпускать бесплатные SSL-сертификаты на группу поддоменов. 3 апреля мы добавили поддержку протокола ACMEv2 от Let’s Encrypt, который и позволяет получать Wildcard SSL. ISPmanager упрощает заказ, автоматизирует установку и сам перевыпускает сертификат раз в три месяца.
Раньше бесплатные SSL-сертификаты от Let’s Encrypt нельзя было подключать на поддомены. Если кроме site.ru вы владели, например, forum.site.ru, то приходилось выпускать два сертификата, а если еще и shop.site.ru, то три. Теперь можно получить один, но Wildcard.
Let’s Encrypt — это единственный удостоверяющий центр, который выдает бесплатные SSL-сертификаты. Если вашему сайту SSL нужен только для подключения HTTPS, сертификат от этой организации подойдет как нельзя кстати.
Let’s Encrypt подтверждает только владение доменом (DV), то есть при выпуске центр сертификации не проверяет законность бизнеса. Поэтому такой сертификат не гарантирует посетителям, что владельцу домена можно доверять логины, пароли и номера банковских карт. Мы не рекомендуем использовать DV-сертификат на сайтах интернет-магазинов и корпоративных порталов, где требуется более высокий уровень доверия пользователей. OV и EV сертификаты с проверкой организации и ее деятельности можно купить в разделе SSL-сертификаты.
Подробно процесс установки описан в нашей документации. Если коротко:
1. Войдите в ISPmanager под root. Перейдите в раздел “Интеграции” — “Модули”, и установите плагин Let’s Encrypt.
2. Перейдите в раздел “Домены” — “WWW-домены”. Выберите нужный домен и нажмите “Изменить”.
3. В открывшемся меню поставьте “галочку” напротив значения “защищенное соединений (SSL)”. Задайте IP-адрес и для параметра “SSL-сертификат” выберите “Новый Let’s Encrypt сертификат”. Нажмите “Ok”.
4. В меню поставьте “галочку” напротив значения «Wildcard сертификат». И нажмите “Ok”.
4. Дождитесь уведомления об успешном завершении или ошибке.
Получение SSL-сертификата возможно также из-под пользователя. Подробности в документации.
Использование letsencrypt для подписи SSL-сертификатов для локальных серверов
Переполнение стека
- Около
Товары
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
Node + Express + LetsEncrypt: создание бесплатного сертификата SSL и запуск сервера HTTPS за 5 минут или меньше | Дэвид Меллул
Сначала , вам понадобятся эти несколько вещей:
- Сервер, работающий на дистрибутиве Linux с корневым доступом (через SSH)
- NodeJS: https: // nodejs.org / en /
- Express:
npm install express
- Certbot
Чтобы установить certbot, скопируйте и вставьте эти строки в терминал:
$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt-get update
$ sudo apt-get install certbot
Второй , вы создадите сертификат SSL с помощью certbot:
$ certbot certonly --manual
Это изображение было создано с карбоном, мне очень нравится этот инструмент (спасибо Mr.Турин)
Введите свое доменное имя (а) без протокола. Например: yourdomain.com или даже muchdomain.verysite.
Введите Y , затем ENTER.
Обратите внимание на две вещи:
- a-string: Имя файла, который вы должны создать прямо сейчас. Просто создайте, о каталогах позаботимся позже.
- a-challenge: Откройте только что созданный файл и вставьте в него эту строку запроса.Ничего другого, только эта строка вызова.
А теперь, не продолжайте. Вам необходимо запустить веб-сервер с Node & Express.
Держите терминал открытым где-нибудь
- Создайте каталог с желаемым именем , например: server
- В этом каталоге создайте файл JS, который будет запускать ваш сервер. Пока оставьте его пустым, так как я предоставлю вам исходный код, готовый к копированию / вставке.
- В этом каталоге создайте два каталога:
.хорошо известный
, а внутри него создайте:acme-challenge
. - В каталог:
acme-challenge
поместите созданный ранее файл: a-string
Это то, что у вас должно получиться:
\ server
---- \. Well-known
- ------- \ acme-challenge
------------ a-string
---- server.js
Важно: На самом деле имя файла не a -string, это длинная буквенно-цифровая строка.В целях безопасности я не могу показать вам свой. То же самое и с a-challenge …
Вы почти закончили!
Используйте свой любимый редактор кода и скопируйте этот код:
Чтобы убедиться, что все в порядке, откройте браузер и перейдите по адресу: http://yourdomain.com/.well-known/acme-challenge/a -string
Ваш браузер должен загрузить файл с вызовом. Если это не так, верните все с самого начала. Не трогайте оболочку, перезапустите из каталога и создания файла.
Если все в порядке, вернитесь в свою оболочку и введите ENTER.
Ура, последний шаг и готово !!
Скопируйте и вставьте следующий код, и у вас будет запущен новый HTTPS-сервер.
Перейдите по адресу: https://yourdomain.com , вы должны увидеть «Привет!».
Запросить бесплатный сертификат у Let’s Encrypt
Запросить бесплатный сертификат у Let’s Encrypt
iRedMail генерирует самоподписанный SSL-сертификат во время установки, это
настоятельно рекомендуется использовать действующий сертификат ssl.
Вы можете запросить бесплатный сертификат или купить его у поставщиков SSL-сертификатов. В этом
мы покажем вам, как запросить бесплатный сертификат для имени хоста
mail.mydomain.com
из Let’s Encrypt и ssl
соответствующие конфигурации в соответствующем программном обеспечении, работающем на сервере iRedMail.
Let’s Encrypt поддерживает имена хостов с подстановочными знаками, но в этом
руководство, пожалуйста, прочтите его Руководство пользователя
вместо.
Мы используем официальный инструмент Let’s Encrypt под названием certbot
для запроса сертификата, есть
некоторые другие сторонние инструменты, которые вы можете использовать.В OpenBSD вы можете использовать команду
acme-client
, который находится в базовой системе (см. Его страницу руководства здесь:
acme-клиент (1). Чтобы получить список других
инструментов, посетите веб-сайт Let’s Encrypt: Клиент ACME
Реализации.
Перед запросом сертификата
Какие имена хостов должны поддерживаться в сертификате SSL?
Вы должны понимать, какие имена хостов необходимо поддерживать в сертификате SSL:
Полное имя вашего почтового сервера.
Имя хоста сервера обычно используется как адрес сервера SMTP / IMAP / POP3 в пользовательских
приложение почтового клиента, такое как Outlook, Thunderbird.Вы можете получить полное имя хоста с помощью команды
hostname -f
в Linux или
имя хоста
в OpenBSD.Имена веб-хостов, к которым вам нужно получить доступ через https.
Например,
https://mydomain.com
,https://support.mydomain.com
, затем
вам необходимо поддерживатьmydomain.com
иsupport.mydomain.com
в ssl
сертификатНЕТ необходимо поддерживать имя почтового домена в сертификате SSL, кроме веб-
имя хоста также .
Один сертификат для всех имен хостов или один сертификат для каждого имени хоста?
Dovecot и Nginx поддерживают чтение / загрузку нескольких сертификатов ssl (для разных
имена хостов), а Postfix — нет (за исключением запуска нескольких экземпляров Postfix и
каждый экземпляр использует один (другой) сертификат ssl). поэтому мы рекомендуем использовать один сертификат
для всех имен хостов, которые используются службами SMTP и IMAP / POP3.
Убедитесь, что у вас есть правильная запись DNS для имен хостов
То, как мы запрашиваем бесплатный сертификат Let’s Encrypt, требует правильной записи DNS типа A.
для имени хоста, потому что организации Let’s Encrypt необходимо убедиться, что
вы фактически контролируете доменное имя и сервер.Опишем подробно
позже.
Чтобы проверить запись DNS, вы можете использовать команду dig
, как показано ниже:
dig + короткий -t mail.mydomain.com
Он должен вернуть (публичный) IP-адрес вашего сервера.
Запросить бесплатный сертификат от Let’s Encrypt
Следуйте официальному руководству Let’s Encrypt, чтобы установить необходимый пакет
certbot
:
https://certbot.eff.org. он используется для запроса сертификата.Предупреждение
Программа certbot
предлагает аргумент--apache
и--nginx
для изменения
Файлы конфигурации Apache / Nginx напрямую, они испортят файлы конфигурации
генерируется iRedMail, пожалуйста, не используйте их , а НЕ .Let’s Encrypt имеет контроль ограничения скорости запросов, вы можете запрашивать ограниченное время
для того же домена за один день, но в процессе проверки таких
предел. Мы предлагаем сначала запустить процесс проверки, чтобы убедиться, что мы полностью соответствуем
его требования.Выполните команду ниже от имени пользователя root, чтобы проверить процесс запроса с помощью
- сухой ход
аргумент. Он напечатает текст на консоли, чтобы спросить вас несколько
простые вопросы, внимательно прочтите и ответьте на них.Предупреждение
Если ваш сервер iRedMail был развернут с iRedMail Easy
платформа, пожалуйста, используйте
-w / opt / www / well_known
вместо этого.
certbot certonly --webroot --dry-run -w / var / www / html -d mail.mydomain.com
Что происходит после того, как вы набрали эту команду? вы можете спросить.
Что-то происходит сразу за командой
-
Программа certbot
создает временный текстовый файл локально в
/ var / www / html /.хорошо известный / acme-challenge /
. Мы используем имя файла
35c9406f6b63bd18fa626e5bd9d0ea8b
, например, в этом руководстве
(/var/www/html/.well-known/acme-challenge/35c9406f6b63bd18fa626e5bd9d0ea8b
). -
Программа certbot
отправляет запрос в организацию Let’s Encrypt.
server, включая имя временного файла. - Сервер организации Let’s Encrypt выполнит http-запрос к вашему
сервер, посетив URL
http: //mail.mydomain.com / .well-known / acme-challenge / 35c9406f6b63bd18fa626e5bd9d0ea8b
чтобы убедиться, что файл действительно существует на вашем сервере. Этот шаг используется
для проверки типа DNS-записи имени хоста и имени домена
владение (вы фактически контролируете это доменное имя и сервер). -
certbot
программа удалить временный файл локально. - , если программа
certbot
на консоли не сообщила об ошибке, и вы запустите
приведенная выше команда без аргумента--dry-run
(описана далее в этом
учебник), certbot получит файлы сертификатов ssl и сохранит их в
/ etc / letsencrypt /
каталог.
Подробнее читайте в официальном документе Let’s Encrypt: Как это
работает.
Предупреждение
Мы предполагаем, что корневой каталог веб-документов для имени веб-хоста
mail.mydomain.com
— это / var / www / html
(это путь по умолчанию, настроенный
с помощью загружаемого установщика iRedMail). В новых выпусках iRedMail путь /.well-known/
является
определен в файле конфигурации Nginx /etc/nginx/templates/misc.tmpl
, если вы
иметь жестко запрограммированный каталог с директивой Nginx root
, вам нужно заменить
/ путь / к / куда-нибудь; / var / www / html
на
/ путь / к / где-то
в командах./.well-known/ {разрешить все; корень / путь / к / где-нибудь; }
- Если все прошло хорошо и программа
certbot
на
консоли, это означает, что мы полностью соответствуем требованиям, и можно
на самом деле запросить сертификат, снова выполнив указанную выше команду, но без
- сухой прогон
аргумент:
certbot certonly --webroot -w / var / www / html -d mail.mydomain.com
Если команда завершилась успешно, она создаст и сохранит файлы сертификатов в
/ и т.д. / letsencrypt / live / mail.mydomain.com/
(у вас может быть другое имя хоста
вместо mail.mydomain.com
в этом примере пути).
Создано файлов сертификатов:
-
cert.pem
: Сертификат сервера. -
chain.pem
: Дополнительный промежуточный сертификат или сертификаты, которые
браузеры потребуются для проверки сертификата сервера. -
fullchain.pem
: Все сертификаты, включая сертификат сервера (он же лист
сертификат или сертификат конечного объекта).Сертификат сервера — первый
один в этом файле, а затем любые промежуточные звенья. -
privkey.pem
: закрытый ключ для сертификата.
Директория / etc / letsencrypt / live /
и / etc / letsencrypt / archive
принадлежит
пользователь и группа root с разрешением 0700 (устанавливается программой certbot
) пользователем
по умолчанию, это означает, что другие пользователи не могут получить к ним доступ, включая пользователей демона
используется для запуска сетевых служб, таких как Postfix / Dovecot / OpenLDAP / MariaDB / PostgreSQL.Необходимо установить разрешение 0644 для доступа к ним других приложений.
chmod 0644 / etc / letsencrypt / {live, archive}
Продлить сертификат автоматически
Вы можете настроить ежедневное задание cron для запуска команды certbot Renew
, чтобы обновить все
существующие SSL-сертификаты, срок действия которых истекает менее чем через 30 дней. Нам нужна его
--post-hook
аргумент для перезапуска сетевых служб для загрузки обновленных сертификатов ssl.
Пример задания cron, которое запускается каждый день в 3:01 и перезапускается.
postfix / nginx / dovecot после обновления:
1 3 * * * certbot Renew --post-hook 'перезапуск постфикса службы; перезапуск службы nginx; перезапуск службы Dovecot '
Используйте сертификат Let’s Encrypt
Самый простой и быстрый способ использовать сертификат Let’s Encrypt — это создание символьных ссылок.
на самозаверяющий сертификат SSL, созданный установщиком iRedMail, затем
перезапустите службы, которые используют файлы сертификатов.
Создание символьных ссылок
Для серверов, развернутых на платформе iRedMail Easy
Если вы развернули iRedMail с iRedMail Easy
платформа, ssl-сертификат / ключевые файлы:
-
/opt/iredmail/ssl/key.pem
: закрытый ключ -
/opt/iredmail/ssl/cert.pem
: сертификат -
/opt/iredmail/ssl/combined.pem
: полная цепочка
Выполните приведенные ниже команды на RHEL / CentOS / Debian / Ubuntu / OpenBSD:
Внимание
Замените
в приведенных ниже примерах команд на настоящее доменное имя.
в вашей файловой системе.
компакт-диск / opt / iredmail / ssl /
mv cert.pem cert.pem.bak
mv key.pem key.pem.bak
мв комбиниров.пем комбинированный.пем.бак
ln -s /etc/letsencrypt/live/<домен>/fullchain.pem комбинированный.pem
ln -s /etc/letsencrypt/live/<домен >/fullchain.pem cert.pem
ln -s /etc/letsencrypt/live/<домен>/privkey.pem key.pem
Если сертификат был обновлен, /etc/letsencrypt/live/
будет
повторно создан (это тоже символьная ссылка), и это вызывает / opt / iredmail / ssl / key.pem
связан с файлом под / etc / letsencrypt / archive /
, поэтому нам нужно обновить
- post-hook
в задании cron также:
Внимание
Замените
на настоящее доменное имя.
1 3 * * * certbot Renew --post-hook 'ln -sf /etc/letsencrypt/live/<домен >/privkey.pem /opt/iredmail/ssl/key.pem; перезапуск постфикса службы; перезапуск службы nginx; перезапуск службы Dovecot '
Для серверов, развернутых с классической загружаемой установкой iRedMail
мв / etc / pki / tls / certs / iRedMail.crt {,. bak} # Резервное копирование. Переименуйте iRedMail.crt в iRedMail.crt.bak
mv /etc/pki/tls/private/iRedMail.key{,.bak} # Backup. Переименуйте iRedMail.key в iRedMail.key.bak
ln -s /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.mydomain.com/privkey.pem /etc/pki/tls/private/iRedMail.key
- В Debian / Ubuntu, FreeBSD и OpenBSD:
mv /etc/ssl/certs/iRedMail.crt{,.bak} # Backup. Переименуйте iRedMail.crt в iRedMail.crt.bak
mv /etc/ssl/private/iRedMail.key{,.bak} # Резервное копирование. Переименуйте iRedMail.key в iRedMail.key.bak
ln -s /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem /etc/ssl/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.mydomain.com/privkey.pem /etc/ssl/private/iRedMail.key
Перезапустить сетевые службы
Требуемые услуги:
- Постфикс
- Голубятня
- Nginx или Apache
В зависимости от серверной части, которую вы выбрали во время установки iRedMail, вам может потребоваться
перезапуск:
- MySQL или MariaDB
- PostgreSQL
- OpenLDAP
Проверить сертификат
- Чтобы проверить сертификат ssl, используемый в Postfix (SMTP-сервер) и Dovecot, запустите
приложение почтового клиента (MUA, e.грамм. Outlook, Thunderbird) и создайте электронное письмо.
аккаунт, убедитесь, что вы правильно настроили MUA для подключения к почте
сервер. Если сертификат SSL недействителен, MUA предупредит вас. - Для веб-сервера Apache / Nginx вы можете получить доступ к своему веб-сайту через любимую сеть
браузер, браузер должен показать вам статус сертификата ssl. Или используйте другое
веб-сайт, чтобы помочь протестировать его, например:
https://www.ssllabs.com/ssltest/index.html (введите имя своего веб-хоста, затем
отправляем и ждем результата).
FAQ
Продлить сертификат
Сертификат
Let’s Encrypt истекает через 90 дней, вы должны продлить его до истечения срока.После обновления не забудьте перезапустить Postfix / Dovecot / Nginx / Apache, чтобы загрузить
новые файлы сертификатов.
Подробнее читайте в официальном документе Let’s Encrypt: Продление сертификатов.
Как проверить статус сертификата
Команда запуска:
сертификаты certbot
Он покажет вам все существующие сертификаты и дату истечения срока их действия.
Как запросить один сертификат с несколькими именами хостов
Если вам нужно поддерживать несколько имен хостов, вы можете указать несколько -w
и -d
аргументы, как показано ниже:
certbot certonly \
--webroot \
--пробный прогон \
-w / var / www / html \
-d почта.mydomain.com \
-w /var/www/vhosts/2nd-domain.com \
-d 2nd-domain.com \
-w /var/www/vhosts/3rd-domain.com \
-d 3rd-domain.com
Соответствующие настройки сертификата SSL в Postfix / Dovecot / Apache / Nginx
В приведенном ниже примере настроек пути к файлам указаны для Debian / Ubuntu.
Postfix
Файл /etc/postfix/main.cf
(в Linux / OpenBSD) или /usr/local/etc/postfix/main.cf
(в FreeBSD):
smtpd_tls_cert_file = / etc / ssl / certs / iRedMail.crt
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
Голубятня
Файл /etc/dovecot/dovecot.conf
(в Linux / OpenBSD) или /usr/local/etc/dovecot/dovecot.conf
(в FreeBSD):
ssl = обязательно
ssl_cert =
Apache (веб-сервер)
- В RHEL / CentOS сертификат SSL определен в
/ etc / httpd / conf.d / ssl.conf
. - В Debian / Ubuntu он определен в
/ etc / apache2 / sites-available / default-ssl
(илипо умолчанию-ssl.conf
) - В FreeBSD он определен в
/usr/local/etc/apache24/extra/httpd-ssl.conf
. Заметка:
если вы используете другую версию Apache, путь будет немного
разные (apache24
будетapache [_version_]
). - В OpenBSD, если вы используете OpenBSD 5.5 или более ранние выпуски, он определяется
в/ var / www / conf / httpd.conf
. Примечание: OpenBSD 5.6 и более поздние версии не
поставлять Apache больше.
Пример:
SSLCertificateFile /etc/ssl/certs/iRedMail.crt
SSLCertificateKeyFile /etc/ssl/private/iRedMail.key
SSLCertificateChainFile /etc/ssl/certs/iRedMail.crt
Требуется перезапуск службы Apache.
Nginx
Файл /etc/nginx/templates/ssl.tmpl
(в Linux / OpenBSD) или /usr/local/etc/nginx/templates/ssl.tmpl
(в FreeBSD):
ssl_certificate / etc / ssl / certs / iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;
MySQL, MariaDB
Если MySQL / MariaDB прослушивает локальный хост и недоступен извне
сеть, это НЕОБЯЗАТЕЛЬНО.
- В Red Hat и CentOS он определен в
/etc/my.cnf
- В Debian и Ubuntu он определен в
/etc/mysql/my.cnf
.- Начиная с Ubuntu 15.04, он определен в
/etc/mysql/mariadb.conf.d/mysqld.cnf
.
- Начиная с Ubuntu 15.04, он определен в
- Во FreeBSD он определен в
/ usr / local / etc / my.cnf
. - В OpenBSD он определен в
/etc/my.cnf
.
[mysqld]
ssl-ca = /etc/ssl/certs/iRedMail.crt
ssl-cert = /etc/ssl/certs/iRedMail.crt
ssl-key = /etc/ssl/private/iRedMail.key
OpenLDAP
Если OpenLDAP прослушивает локальный хост и недоступен извне
сеть, это НЕОБЯЗАТЕЛЬНО.
- В Red Hat и CentOS он определен в
/etc/openldap/slapd.conf
. - В Debian и Ubuntu он определен в
/ etc / ldap / slapd.conf
. - В FreeBSD он определен в
/usr/local/etc/openldap/slapd.conf
. - В OpenBSD он определен в
/etc/openldap/slapd.conf
.
TLSCACertificateFile /etc/ssl/certs/iRedMail.crt
TLSCertificateKeyFile /etc/ssl/private/iRedMail.key
TLSCertificateFile /etc/ssl/certs/iRedMail.crt
OpenBSD ldapd (8)
Если ldapd (8) прослушивает локальный хост и недоступен извне
сеть, это НЕОБЯЗАТЕЛЬНО.Для получения более подробной информации о файле конфигурации ldapd, пожалуйста, проверьте его страницу руководства: ldapd.conf (5).
Чтобы ldapd (8) прослушивал сетевой интерфейс для внешней сети, пожалуйста
убедитесь, что у вас есть установка в /etc/ldapd.conf
для прослушивания интерфейса. Мы
например, используйте em0
в качестве внешнего сетевого интерфейса.
# Слушайте сетевой интерфейс em0, порт 389, используйте STARTTLS для безопасного соединения.
слушать на em0 порт 389 tls
Если вы хотите использовать порт 636 с SSL, попробуйте следующее:
# Слушать сетевой интерфейс em0, порт 636, использовать SSL для безопасного соединения.слушать на em0 порт 636 ldaps
ldapd (8) будет искать сертификат SSL и ключ из каталога / etc / ldap / certs /
по
по умолчанию имя файла сертификата - <имя_интерфейса> .crt
и <имя_интерфейса> .key
.
В нашем случае он будет искать /etc/ldap/certs/em0.crt
и /etc/ldap/certs/em0.key
.
Поскольку iRedMail уже генерирует сертификат и ключ, мы можем использовать его напрямую. если ты
купили сертификат / ключ SSL или запросили его у LetsEncrypt, вы можете их использовать
слишком.
компакт-диск / etc / ldap / certs /
ln -s /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem em0.crt
ln -s /etc/letsencrypt/live/mail.mydomain.com/privkey.pem em0.key
Теперь перезапустите службу ldapd (8):
rcctl перезапуск ldapd
См. Также
LetsEncrypt
- Установить [14]
- КВМ
- OpenVZ
- Xen
- XenServer
- LXC
- OpenVZ 7
- Proxmox
- Виртуоззо
- Главный сервер
- Добавить сервер
- Мастер миграции
- Мульти виртуализация
- ZFS
- Руководство по импорту SolusVM
- Администратор [85]
- Создание VPS
- Управление VPS
- Добавить новое хранилище
- Мост KVM
- Создать шаблон ОС
- Высокая доступность
- Добавить шаблон ОС
- Планы резервного копирования
- Биллинг [1]
- Настройки биллинга
- Восстановление резервных копий VPS
- Резервные копии баз данных
- Руководство по импорту Proxmox
- Импорт в Virtualizor XenServer
- Настройки Xen
- PowerDNS
- Настроить PowerDNS
- Настроить обратный DNS
- LetsEncrypt
- Тонкая настройка EMPS
- VLAN
- Двухфакторная аутентификация (панель администратора)
- Стандартные веб-порты
- НВНК
- Добавить дополнительный компакт-диск
- Спасательный режим
- Войдите в VPS из панели администратора
- Немедленное обновление
- Добавление плана
- Подсети IPv6
- Внутренняя сеть
- Добавить пул IP-адресов
- NAT
- Группы серверов
- Добавить IP
- Добавить сертификат SSL
- Заметки администратора
- Администратор ACL
- Изменить IP лицензии
- Обновить Virtualizor
- Изменение порядка загрузки
- Клон VPS
- Настройка параметров электронной почты
- Раскладки клавиатуры
- Настройка темы
- Отключить флаги DD
- Hetzner Дополнительные IP-адреса
- Импорт OpenVZ VPS
- Libguestfs CentOS 7.3 исправления
- Перегрузка памяти
- Процессы
- ППС
- Готовых шаблонов ОС
- Рецепты
- Обновить лицензию
- Ремонтная база данных
- Сброс ключей API
- Восстановить базу данных
- Ограничить панель администратора
- Кластеризация серверов
- Обновление лицензии VPS
- Частная лицензия
- Бессрочная лицензия
- Использование диска сервера
- Статистика сервера
- Услуги
- Tun Tap
- Статистика VPS
- Перенос графического интерфейса
- Настройка OVH
- Группы объемов
- Миграция QCOW2
- Перенос контейнера OpenVZ
- Переход с Parallels Virtuozzo
- Добавить пользователя
- Менеджмент ISO
- Шаблоны ОС
- Управление переадресацией домена VPS
- Как сделать языковой пакет
- Добавить ISO
- Вебузо
- Универсальный поиск
- Основные настройки
- Настройки ведомого
- Удалить резервную копию на VPS удалить
- Биллинг [13]
- Модуль WHMCS
- Модуль WHMCS для реселлеров
- Модуль WHMCS для создания учетных записей посредников
- Модуль лицензирования WHMCS
- Крюк для лицензирования WHMCS
- WHMCS Преобразование V1 в V2
- Модуль Блеста
- Рекапча
- Облачная биллинговая система Virtualizor
- Опыт конечного пользователя Cloud Billing
- Интегрировать платежный шлюз
- Покупка лицензии Virtualizor
- Пробная лицензия Virtualizor
Модуль
- Конечный пользователь [23]
- Список VPS
- Управление VPS
- Изменить пароль учетной записи
- Изменить имя хоста
- Переустановите ОС
- Двухфакторная аутентификация (панель конечного пользователя)
- Конечный пользователь ISO
- Настройки пользователя
- Изменить пароль root
- Изменить пароль VNC
- Ключи API клиента
- Резервное копирование конечного пользователя
- Установите CWP из Virtualizor
- Установка cPanel из Virtualizor
- Установка Plesk из Virtualizor
- Установка панели управления
- Установка Interworx из Virtualizor
- Установка Webmin из Virtualizor
- Установка ISPConfig3 из Virtualizor
- Установка Webuzo из Virtualizor
- Установка VestaCP из Virtualizor
- Управление IP ВМ
- VNC
- Пользователь облака [2]
- Запуск инстанса (с выставлением счетов)
- Launch Instace (биллинг отключен)
- Admin API [206]
- Виртуальные серверы [25]
- Список виртуальных серверов
- Создать VPS
- Удалить VPS
- Редактировать VPS
- Управление VPS
- Запуск VPS
- Остановить VPS
- Перезапустить VPS
- Poweroff VPS
- Приостановить VPS
- Отменить приостановку VPS
- Приостановка сети
- Отключение сети
- Восстановить VPS
- Перенести VPS
- Клон VPS
- Информация о VNC
- Добавить запись перенаправления домена
- Изменить запись переадресации домена
- Удаление записи переадресации домена
- Список записей переадресации домена
- Высокая доступность
- Сбросить пропускную способность
- Статус VPS
- Обновление сетевых правил VPS
- Пул IP-адресов [18]
- Список IP-пулов
- Создать пул IP
- Добавить внутренний пул IP-адресов
- Добавить пул IPv6
- Изменить пул IP-адресов
- Удалить пул IP-адресов
- Список IP-адресов
- Поиск в пуле IP-адресов
- Поиск IP-адресов
- Добавить IP (IPv4)
- Добавить IP (IPv6)
- Изменить IP
- Удалить IP
- Список подсети IPv6
- Поиск в подсети IPv6
- Изменить подсеть IPv6
- Удалить подсеть IPv6
- Добавить подсеть IPv6
- Серверы [14]
- Список серверов
- Добавить сервер
- Сервер редактирования
- Удалить сервер
- Загрузок
- Список групп серверов
- Добавить группы серверов
- Редактировать группу серверов
- Удалить группу серверов
- Сервер резервного копирования списка
- Добавить сервер резервного копирования
- Редактировать сервер резервного копирования
- Удалить сервер резервного копирования
- Тестовое резервное соединение
- Склад [6]
- Хранение списков
- Изменить хранилище
- Удалить хранилище
- Добавить хранилище
- Список потерянных дисков
- Удалить потерянные диски
- Планы [16]
- Планы списков
- Добавить план
- Редактировать планы
- Удалить планы
- Список планов пользователя
- Удалить план пользователя
- Добавить план пользователя
- Изменить план пользователя
- Список планов DNS
- Добавить планы DNS
- Изменить план DNS
- Удалить планы DNS
- Список планов резервного копирования
- Добавить планы резервного копирования
- Изменить планы резервного копирования
- Удалить планы резервного копирования
- пользователей [10]
- Список пользователей
- Добавить пользователя
- Редактировать пользователя
- Удалить пользователя
- Блокировка пользователя
- Отмена приостановки пользователя
- Добавить ACL администратора
- Администратор списков ACL
- Редактировать ACL администратора
- Удалить ACL администратора
- Медиа [20]
- Шаблоны ОС
- Редактировать шаблоны ОС
- Удалить шаблоны ОС
- Синхронизация шаблонов ОС
- Браузер шаблонов
- Создать шаблон
- Добавить шаблон
- Список ISO
- Добавить ISO
- Удалить ISO
- Медиагруппы
- Добавить медиа-группы
- Редактировать медиа-группу
- Удалить группу мультимедиа
- Список Distro
- Добавить Distro
- Редактировать дистрибутив
- Удалить дистрибутив
- Список конечных пользователей ISO
- Удалить конечного пользователя ISO
- Рецепты [6]
- Список рецептов
- Добавить рецепты
- Редактировать рецепт
- Удалить рецепт
- Активировать рецепт
- Деактивировать рецепт
- Задачи [3]
- Показать задачи
- Показать журналы
- Задачи поиска
- Конфигурация [17]
- Основные настройки
- Редактировать главную конфигурацию
- Настройки ведомого
- Изменить конфигурацию ведомого
- Настройки Webuzo
- Идентификатор скрипта Webuzo
- Настройки электронной почты
- Информация о сервере
- Лицензия
- Изменить имя хоста
- Режим обслуживания
- Конфигурация ядра
- Конфигурация VPS по умолчанию
- Обновления
- Шаблоны электронной почты
- Редактировать шаблоны электронной почты
- Сбросить шаблон электронного письма
- Биллинг [10]
- Настройки биллинга
- Стоимость ресурсов
- Добавить счет
- Редактировать счет-фактуру
- Список счетов-фактур
- Удалить счет-фактуру
- Добавить транзакцию
- Изменить транзакцию
- Список транзакций
- Удалить транзакции
- Резервные копии [9]
- Резервные копии баз данных
- Отключить резервное копирование данных
- Список резервных копий
- Удалить резервную копию базы данных
- Создать резервную копию базы данных
- Создать резервную копию VPS
- Резервное копирование VPS Подробнее
- Восстановление резервных копий VPS
- Удалить резервную копию VPS
- Power DNS [12]
- Список DNS-серверов
- Добавить DNS-сервер
- Редактировать DNS-сервер
- Удалить DNS-сервер
- Домены
- Удалить зону
- Поиск записей DNS
- Удалить записи DNS
- Добавить записи DNS
- Редактировать записи DNS
- Тестовое соединение
- Добавить зону обратного DNS
- SSL [5]
- Файлы SSL
- Создать SSL
- Сертификат установки LetEncrypt
- LetsEncrypt Обновить CRT
- LetsEncrypt Показать журналы
- Производительность узла
- Статистика VPS
- ЦП
- RAM
- Диск
- Пропускная способность
- Межсетевой экран
- Производительность
- Процессы [2]
- Список процессов
- Процессы убийства
- Услуги [3]
- Список услуг
- Управление службами
- Услуги перезапуска
- Журналы [5]
- Журналы администратора
- Журналы входа
- Журналы пользователей
- Журналы IP
- Удалить журналы IP
- Виртуальные серверы [25]
- API конечного пользователя [101]
- Виртуальный сервер [13]
- Список VPS
- Информация о VPS
- Создать ВМ
- Редактировать ВМ
- Удалить ВМ
- Запустить ВМ
- Остановить ВМ
- Перезапустить ВМ
- Poweroff VM
- Приостановить ВМ
- Отменить приостановку ВМ
- Приостановка сети
- Отключение сети
- Облачные ресурсы
- Пользователь [4]
- Список пользователей
- Добавить пользователя
- Редактировать пользователя
- Удалить пользователя
- Настройки пользователя
- Пароль учетной записи
- Статистика [4]
- Ram
- ЦП
- Диск
- Пропускная способность
- Профиль
- DNS [3]
- Список DNS-серверов
- Добавить DNS
- Удалить DNS
- Запись DNS [4]
- Информация о зоне
- Добавить запись DNS
- Редактировать запись DNS
- Удалить запись DNS
- Обратный DNS [3]
- Список обратных DNS
- Добавить обратный DNS
- Удалить обратный DNS
- Управление VPS [31]
- Изменить имя хоста
- Изменить пароль
- Конфигурация VPS
- IP
- Управление подсетями
- Спасательная [2]
- Включить спасение
- Отключить спасение
- VNC [2]
- Информация о VNC
- Пароль VNC
- Рецепты [2]
- Список рецептов
- Выполнить рецепт
- Перенаправление домена [4]
- Переадресация доменов списка
- Добавить перенаправление домена
- Изменить перенаправление домена
- Удаление перенаправления домена
- Приложения [1]
- Скрипты Webuzo
- Монитор
- Журналы статуса
- Журналы
- Самовыключение [2]
- Самостоятельное выключение при запуске
- Удалить самоотключение
- Задачи
- Переустановка ОС
- Шаблон ОС
- Панель управления
- SSH-ключи [5]
- Список ключей SSH
- Добавить ключ SSH
- Изменить ключ SSH
- Удалить ключ SSH
- Применить ключ SSH
- ISO [3]
- Список ISO
- Добавить ISO
- Удалить ISO
- Резервные копии [4]
- Список резервных копий
- Создать резервную копию
- Восстановление резервной копии
- Удалить резервную копию
- Процессы [2]
- Список процессов
- Процессы убийства
- Учетные данные API [3]
- Список ключей API
- Добавить ключ API
- Удалить ключ API
- Системные предупреждения
- Услуги [4]
- Список услуг
- Старт службы
- Остановить службы
- Услуги перезапуска
- Виртуальный сервер [13]
- Разработчики [5]
- Крючки
- API администратора
- API конечного пользователя
- Фильтры
- NOC API
- FAQ [29]
- Знаете ли вы? [5]
- Резервное копирование / восстановление VPS [1]
- Восстановить VPS только из файла резервной копии
- Факты о миграции / клонировании VPS
- Создание VPS с помощью VMDK / VHD
- Аварийное восстановление
- Резервное копирование / восстановление VPS [1]
- Распространенные проблемы и способы их решения [6]
- Виртуальная сеть
- Панель не в сети
- Не удалось запустить Xen vps
- Сбой задачи миграции или клонирования
- IP сервера изменен
- Проблема с сетью VPS
- OpenVZ 6 [2]
- vzquota issues [1]
- vzquota issues [1]
- Знаете ли вы? [5]
Получение бесплатных подстановочных SSL / TLS-сертификатов от Let’s Encrypt | Документация Plesk Onyx
Вы можете запросить подстановочный SSL / TLS
сертификаты
с помощью расширения Let’s Encrypt версии 2.6.0 и новее. Один
подстановочный сертификат можно использовать для защиты основного домена вместе с
любое количество поддоменов, что полезно, если у вас много поддоменов.
Для выдачи подстановочного сертификата SSL / TLS:
Перейдите на веб-сайты и домены , найдите домен, который вы хотите защитить, и
нажмите Let's Encrypt .Установите флажок «Выпустить подстановочный сертификат» и выберите
псевдонимы доменов, которые вы также хотите защитить (если есть).Нажмите Установить (или Продлить , если домен уже защищен с помощью
сертификат Let's Encrypt).Расширение Let’s Encrypt добавит DNS-запись, необходимую для
выдача подстановочного сертификата SSL / TLS:Примечание: Если Plesk не управляет DNS для домена, давайте зашифруем
расширение не может добавлять запись DNS автоматически. В этом случае,
вы увидите следующее сообщение: «Добавьте запись DNS с
следующие параметры ».Добавьте DNS-запись с указанным
параметры вручную. Если вы не знаете, как это сделать, спросите свой DNS
хостинг-провайдер за помощью.Добавляет ли расширение Let’s Encrypt запись DNS автоматически
или вы делаете это вручную, может пройти некоторое время, прежде чем он начнет распространяться. Мы
рекомендую вам проверить, была ли добавлена запись DNS, прежде чем переходить
к следующему шагу. Вот как это сделать:Выполните следующую команду:
dig -t txt _acme-challenge.
+ короткий Если вывод соответствует записи, показанной Let’s Encrypt
расширение, вы можете перейти к следующему шагу.Используйте службу проверки DNS, для
Например, MxToolbox.Введите имя домена, указанное в сообщении расширения Let's Encrypt.
(_acme-challenge.example.com
в приведенном выше примере), а затем
щелкните Поиск TXT . Если запись TXT найдена и соответствует
показанный расширением Let’s Encrypt, вы можете перейти к
следующий шаг.
Примечание: Если команда dig -t txt
или служба проверки DNS не отображаются
записи TXT, убедитесь, что записи NS домена
существуют и указывают на сервер Plesk. Сделать это в
MxToolbox, выберите и
нажмите Проверка DNS . Если записи NS не найдены или не найдены
укажите на сервер Plesk, вам необходимо исправить настройки DNS. Если
Plesk не управляет DNS для домена, и вы не знаете, как
для этого обратитесь за помощью к своему поставщику услуг хостинга DNS.
- Щелкните Продолжить .
Ваш подстановочный сертификат SSL / TLS выпущен и установлен. В
сертификат автоматически защищает следующие объекты:
- Основной домен.
- Псевдонимы, которые вы выбрали для защиты.
- субдомена www для основного домена и каждого выбранного псевдонима.
выбран для обеспечения безопасности. - Электронная почта.
Следующие объекты по умолчанию не защищены:
- Поддомены
- Поддомены подстановочных знаков
Вы можете закрепить их вручную:
- Перейдите на Сайты и домены и найдите нужный субдомен.
безопасный - Щелкните Настройки хостинга .
- Установите флажок «Поддержка SSL / TLS».
- В меню «Сертификат» выберите подстановочный сертификат SSL / TLS.
- Щелкните ОК .
Бесплатные SSL-сертификаты Let's Encrypt: встроенная интеграция
Одна из ключевых проблем, с которыми мы должны столкнуться при размещении производственных приложений, - это обеспечение их безопасности. Самый простой и часто используемый подход к безопасному обмену данными - это шифрование трафика приложения с помощью протокола HTTPS.
Кроме того, с 1 января 2017 года один из самых популярных браузеров - Google Chrome - начал отмечать все веб-страницы, которые не защищены с помощью SSL, как небезопасные, с указанием пароля или данных кредитной карты. Такая новизна делает интеграцию шифрования еще более важной.
Однако выпуск и настройка пользовательского SSL-сертификата для проекта может быть довольно сложной и трудоемкой задачей. Let's Encrypt (LE) - это бесплатный открытый центр сертификации, который позволяет значительно упростить и автоматизировать процесс интеграции доверенных сертификатов SSL.
Общая тенденция перехода Интернета на HTTPS подразумевает полную автоматизацию выпуска и использования настраиваемых сертификатов SSL. Таким образом, разработчики Jelastic проделали большую работу по упаковке сервиса Let's Encrypt с Cloud Scripting, чтобы реализовать решение, позволяющее избавиться от регулярного обновления сертификатов.
Ключевым преимуществом этого решения является уникальная готовая интеграция с наиболее популярными стеками балансировщиков нагрузки и серверов приложений. Таким образом, это дает возможность бесплатно защитить большинство существующих приложений, работающих в Jelastic.
Будучи подготовленным как надстройка, это решение может быть легко установлено поверх любого контейнера с включенной поддержкой Custom SSL, а именно следующих серверов (список постоянно расширяется):
- Load Balancers - NGINX, Apache LB , HAProxy, Varnish
- Серверы приложений Java - Tomcat, TomEE, GlassFish, Payara, Jetty
- Серверы приложений PHP - Apache PHP, NGINX PHP
- Серверы приложений Ruby - Apache Ruby, NGINX Ruby
Если вам требуется Let's Encrypt SSL для любого другого стека просто добавьте балансировщик нагрузки перед вашими серверами приложений и установите надстройку.Завершение SSL на уровне балансировки нагрузки используется по умолчанию в кластерных топологиях.
Как это работает
Во время установки надстройка загружает и настраивает клиент Let's Encrypt (так называемый агент управления сертификатами (CMA)), запрашивает сертификаты у Let's Encrypt Certificate Authority (CA), применяет выданные сертификаты к работающему программному обеспечению стек в соответствии со спецификой интеграции SSL и добавляет специальное задание cron для инициирования обновления сертификатов при приближении даты истечения срока действия.
Проверка управления доменом
После запроса на выдачу сертификатов Let's Encrypt CA проверяет точку входа среды на порт 80 , чтобы доказать, что данный веб-сервер контролирует указанные домены. Таким образом, во время процесса проверки домена весь входящий HTTP-трафик будет внутренне маршрутизироваться на настраиваемый порт 12345 , где запускается соответствующий прокси-сервер CMA.
В случае, если уровень содержит несколько узлов одного типа, в течение периода обновления весь входящий HTTP-трафик будет дополнительно маршрутизироваться на главный узел, на котором запущен прокси CMA.Это достигается путем установки специальных временных правил маршрутизации DNAT, чтобы запрос проверки домена мог обрабатываться CMA.
Поскольку такое перенаправление требуется только во время проверки домена, эти специальные настройки DNAT будут удалены сразу после подтверждения соответствия имени хоста.
После успешной проверки домена CMA получает возможность запрашивать, обновлять и отзывать сертификаты SSL для указанных доменов, поэтому он автоматически сгенерирует соответствующую пару ключей SSL.В результате выданные сертификаты будут распространяться на все узлы в пределах уровня точки входа через Jelastic API, поэтому приложение будет правильно настроено для дальнейшей работы через HTTPS.
Несмотря на длинное описание, все эти операции выполняются за считанные минуты. Теперь давайте узнаем, как на самом деле запустить установку надстройки Let's Encrypt.
Установка надстройки Let's Encrypt SSL
Чтобы получить сертификат SSL для имени хоста среды, выполните следующие действия:
1.Войдите в панель управления Jelastic и щелкните Marketplace вверху страницы. В открывшемся фрейме перейдите на вкладку Add-ons и найдите пакет Let's Encrypt Free SSL .
Совет: В качестве альтернативы вы можете Импортировать файл manifest.jps из соответствующего репозитория надстроек Let's Encrypt:
https://github.com/jelastic-jps/lets-encrypt/ blob / master / manifest.jps Импорт надстройки через вкладку JPS позволяет выполнять настройку на лету.
Щелкните Установить , чтобы продолжить.
2. После получения необходимых данных вы увидите окно установки надстройки Let's Encrypt SSL .
Здесь вам необходимо:
- предоставить Внешние домены целевой среды, возможные варианты:
- оставьте поле пустым, чтобы создать фиктивный сертификат SSL, назначенный внутренней среде URL ( env_name. { hoster_domain } ) для использования в тестировании
- вставьте предварительно связанный внешний домен (ы), чтобы получить доверенный сертификат для каждого из них; при указании нескольких имен хостов разделите их запятыми или точкой с запятой. , он автоматически обнаруживается и загружается надстройкой, но может быть переопределен вручную)
Наконец, нажмите Установить , чтобы начать установку соответствующего сертификата (ов) SSL.
Обратите внимание на , что для правильной работы надстройке требуется общедоступный IP-адрес. Таким образом, в случае, если точка входа в среду его не имеет, она будет автоматически подключена во время установки (имейте в виду, что общедоступный IP-адрес является платным - стоимость можно найти в рамке квот и цен).
3. Процесс установки может занять до нескольких минут для проверки права собственности на доменное имя, выдачи сертификатов Let's Encrypt и их применения.
По завершении вы можете получить доступ к разделу Параметры среды > Пользовательский SSL , чтобы проверить, активна ли поддержка HTTPS, и узнать дату истечения срока действия сертификата.