Let's Encrypt — различия между версиями

Материал из CADR
Перейти к: навигация, поиск
(Исправил опечатку)
(Дополнил статью)
Строка 45: Строка 45:
 
       $CA_CERT_FILE_PATH \
 
       $CA_CERT_FILE_PATH \
 
       $RELOAD_CMD
 
       $RELOAD_CMD
 +
 +
Таким образом, после работы программы мы получим три файла:
 +
* В каталоге <code>/etc/ssl/certs/</code> -- подписанный публичный ключ (сертификат) <code>example.ru.cert</code> и публичный ключ (сертификат) центра сертификации <code>ca-letsencrypt.cert</code>.
 +
* В каталоге <code>/etc/ssl/private/</code> -- приватный (закрытый) ключ <code>example.ru.key</code>.
 +
 +
Также эти ключи находятся в каталоге <code>~/.le</code>, откуда они и копируются в вышеуказанные каталоги в <code></code>.
  
 
[[Категория:База знаний]]
 
[[Категория:База знаний]]

Версия 01:49, 23 января 2016

Клиенты

Взаимодействие с сервером Let's Encrypt происходит посредством протокола ACME. Кроме официального клиента letsencrypt существует большое количество сторонних реализаций. Список клиентов Let's Encrypt можно посмотреть на странице List of Client Implementations.

Пример использования

Здесь мы рассмотрим получение сертификата через клиент le, написанный на Bash.

Предполагается, что сервер работает под Ubuntu 14.04, используется nginx в качестве web-сервера, и действия выполняются от root'а.

Во-первых, мы должны склонировать репозиторий -- допустим, в каталог /opt/le:

 $ git clone https://github.com/Neilpang/le.git /opt/le

Далее необходимо выполнить установку:

 $ cd /opt/le
 $ ./le.sh install

Установщик создаёт каталог ~/.le и копирует в него le.sh, создаёт символьную ссылку /bin/le -> ~/.le/le.sh и добавляет в cron текущего пользователя (в нашем случае, root'а) задание по проверке сертификата и обновления его, если это требуется.

Теперь мы можем получить наш сертификат:

 # Название домена, для которого необходим сертификат:
 $ export DOMAIN=example.ru
 # Длина ключа:
 $ export KEY_LEN=2048
 # Путь к файлу сертификата (публичного ключа):
 $ export CERT_FILE_PATH=/etc/ssl/certs/${DOMAIN}.cert
 # Путь к файлу (закрытого) ключа:
 $ export KEY_FILE_PATH=/etc/ssl/private/${DOMAIN}.key
 # Путь к сертификату центра сертификации Let's Encrypt:
 $ export CA_CERT_FILE_PATH=/etc/ssl/certs/ca-letsencrypt.cert
 # Команда перезапуска web-сервера (выполняется после обновления
 # сертификата, скажем, по cron'у):
 $ export RELOAD_CMD="service nginx restart"
 $ le issue no \
     $DOMAIN $DOMAIN $KEY_LEN \
     $CERT_FILE_PATH \
     $KEY_FILE_PATH \
     $CA_CERT_FILE_PATH \
     $RELOAD_CMD

Таким образом, после работы программы мы получим три файла:

  • В каталоге /etc/ssl/certs/ -- подписанный публичный ключ (сертификат) example.ru.cert и публичный ключ (сертификат) центра сертификации ca-letsencrypt.cert.
  • В каталоге /etc/ssl/private/ -- приватный (закрытый) ключ example.ru.key.

Также эти ключи находятся в каталоге ~/.le, откуда они и копируются в вышеуказанные каталоги в .