The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Раздел полезных советов: Наиболее простой способ получения и..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Наиболее простой способ получения и..."  +/
Сообщение от auto_tips (??) on 08-Июл-17, 11:05 
В рамках проекта dehydrated (https://github.com/lukas2511/dehydrated) развивается shell-скрипт для автоматизации действий по получению SSL-сертификатов в некоммерческом удостоверяющем центре Let's Encrypt (https://letsencrypt.org/). Регистрация в сервисе, получение сертификата и его последующее обновление предельно упрощено и требует только указания домена в файле конфигурации, создания проверочного пути на сайте и запуска скрипта.

Пользователи RHEL/CentOS могут установить dehydrated из репозитория
EPEL:

   yum install dehydrated

Скрипт также присутствует в портах FreeBSD, в репозитории Fedora, Ubuntu и многих других дистрибутивов Linux.

После установки прописываем домены, для которых необходим сертификат, в файле /etc/dehydrated/domains.txt (можно определить несколько строк с разными доменами для разных сертификатов):

   example.com www.example.com
   example2.com www.example2.com test.example2.com

В иерархии каталогов, в которых хранится контент example.com, создаём каталог .well-known и подкаталог acme-challenge, в которых будет создан временный  файл для проверки наличия контроля за сайтом:

   mkdir /var/www/htdocs/.well-known
   mkdir /var/www/htdocs/.well-known/acme-challenge

Указываем в файле конфигурации /etc/dehydrated/config каталоги и email для связи, остальные параметры можно оставить по умолчанию:

   WELLKNOWN="/var/www/htdocs/.well-known/acme-challenge"
   CONTACT_EMAIL="example@examplemail.com"

Далее запускаем скрипт dehydrated с опцией "-с", которой достаточно для большинства ситуаций. После первого запуска будет совершена регистрация в Let's Encrypt, после чего будет инициирован процесс проверки путем генерации токена в директории .well-known/acme-challenge с его последующим внешним запросом.

   dehydrated -c

   # INFO: Using main config file /etc/dehydrated/config
   # INFO: Using additional config file /etc/dehydrated/conf.d/local.sh
   Processing example.com with alternative names: www.example.com
    + Signing domains...
    + Creating new directory /etc/dehydrated/certs/example.com ...
    + Generating private key...
    + Generating signing request...
    + Requesting challenge for example.com...

Если проверка прошла удачно, готовые сертификаты будут сохранены в каталог /etc/dehydrated/certs/example.com, который можно указать в настройках сервера. Например, в nginx:


        ssl on;
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        ssl_certificate      /etc/dehydrated/certs/example.com/fullchain.pem;
        ssl_certificate_key  /etc/dehydrated/certs/example.com/privkey.pem;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/nginx/ssl/dhparams.pem; # генерируется через "openssl dhparam -dsaparam -out /etc/nginx/ssl/dhparams.pem 2048"

В случае повторного запуска "dehydrated -c" будет выполнена проверка срока действия сертификата и если до окончания его действия остаётся менее 30 дней будет запрошено обновление. Для автоматизации поддержания сертификатов можно добавить "dehydrated -c" в cron.


   dehydrated -c

   # INFO: Using main config file /etc/dehydrated/config
   # INFO: Using additional config file /etc/dehydrated/conf.d/local.sh
   Processing example.com with alternative names: www.example.com
    + Checking domain name(s) of existing cert... unchanged.
    + Checking expire date of existing cert...
    + Valid till Sep 11 03:53:00 2017 GMT (Longer than 30 days). Skipping renew!


В случае необходимости получения сертификатов для нескольких доменов, следует для всех сайтов позаботиться о пробросе проверочных запросов в каталог, заданный в переменной WELLKNOWN (проверка осуществляется через запрос http://example.com/.well-known/acme-challenge/m4g1C-t0k3n). Например, можно добавить в конфигурацию хоста в nginx:


   location /.well-known/acme-challenge {
      alias /var/www/htdocs/.well-known/acme-challenge;
   }

URL:
Обсуждается: http://www.opennet.ru/tips/info/3022.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от PavelR (??) on 08-Июл-17, 11:05 
Мои "заготовки" для веб-сервера


### NGINX

ssl_certificate /etc/dehydrated/var/certs/domain.tld/fullchain.pem;
ssl_certificate_key /etc/dehydrated/var/certs/domain.tld/privkey.pem;


location /.well-known/acme-challenge/ {
  alias  /etc/dehydrated/var/acme-challenges/;
}


### APACHE

Alias /.well-known/acme-challenge/ /etc/dehydrated/var/acme-challenges/
<Directory /etc/dehydrated/var/acme-challenges/>
        Options None
        AllowOverride None

        # Apache 2.x
        <IfModule !mod_authz_core.c>
                Order allow,deny
                Allow from all
        </IfModule>

        # Apache 2.4
        <IfModule mod_authz_core.c>
                Require all granted
        </IfModule>
</Directory>

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от PavelR (??) on 08-Июл-17, 11:09 
Скрипт быстрого конфигурирования (не забудьте задать ваш реальный E-Mail)


## КОНФИГУРАЦИЯ /etc/dehydrated/config
cat <<-EOF >> /etc/dehydrated/config
BASEDIR=/etc/dehydrated/var
WELLKNOWN="\${BASEDIR}/acme-challenges"
CONTACT_EMAIL="support@company.com"
LICENSE="https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016...
HOOK=/etc/dehydrated/hook.sh
EOF

touch /etc/dehydrated/conf.d/empty.sh
touch /etc/dehydrated/domains.txt

mkdir -p /etc/dehydrated/var/acme-challenges

#Прописываем запуск в CRON - файл /etc/cron.weekly/dehydrated

cat <<-EOF > /etc/cron.weekly/dehydrated
#!/bin/sh
/usr/bin/dehydrated -c -g 1>/dev/null
EOF
chmod +x /etc/cron.weekly/dehydrated


#HOOK  (для версии младше 0.4)

cat <<-EOF > /etc/dehydrated/hook.sh
#!/bin/bash
if [ \${1} == "deploy_cert" ]; then
    /usr/sbin/service nginx reload
fi
EOF

chmod +x /etc/dehydrated/hook.sh


#HOOK V2 (FOR dehydrated 0.4+, please check for "exit_hook" presence)

cat <<-EOF > /etc/dehydrated/hook.sh
#!/usr/bin/env bash

if [ \${1} == "deploy_cert" ]; then
  touch \${BASEDIR}/.service-nginx-reload
  #if [ "\${2}" = "mail.company.com" ]
  #then
  #  /usr/sbin/service postfix reload
  #  /usr/sbin/service dovecot reload
  #fi
fi

if [ \${1} == "exit_hook" ]; then
  if [ -r "\${BASEDIR}/.service-nginx-reload" ]; then
    rm "\${BASEDIR}/.service-nginx-reload"
    /usr/sbin/service nginx reload
  fi
fi
EOF

chmod +x /etc/dehydrated/hook.sh

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 08-Июл-17, 11:28 
С ssl_ciphers что-то намудрили, можно поменьше их указывать
https://mozilla.github.io/server-side-tls/ssl-config-generator/
https://wiki.mozilla.org/Security/Server_Side_TLS

Или тут ещё ресурс https://cipherli.st/

Ну а потом идем https://www.ssllabs.com/ssltest/ и смотрим чтобы было grade A или A+ для эстетов

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Solari on 08-Июл-17, 11:33 
А я не настолько доверяю сервису, чтобы запускать на сервере шеллскрипт с него.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от mimocrocodile on 08-Июл-17, 14:38 
>   location /.well-known/acme-challenge {
>      alias /var/www/htdocs/.well-known/acme-challenge;
>   }

можно переписать как

>   location /.well-known/acme-challenge {
>      root /var/www/htdocs;
>   }

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 08-Июл-17, 21:14 
Это обычная shell-обвязка над клиентом ACME, которая поставляется во многих дистрибутивах и хорошо проверена. Оснований доверять/не доверять dehydrated столько же как и любому другому пакету из репозитория, никакой внешний код этот скрипт не запускает, только то что уже установлено.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 08-Июл-17, 21:18 
> Это обычная shell-обвязка над клиентом ACME

Точнее над протоколом ACME, там из зависимостей только openssl, curl, sed, grep и mktemp. Скрипт предельно простой и понятный.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 08-Июл-17, 22:21 
>mkdir /var/www/htdocs/.well-known
>mkdir /var/www/htdocs/.well-known/acme-challenge

->

mkdir -p /var/www/htdocs/.well-known/acme-challeng

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 08-Июл-17, 23:33 
mkdir: invalid option -- 'p'
Try 'mkdir --help' for more information.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от ыщёадинаноним on 09-Июл-17, 09:04 
Как-то не очевидно, в чем его преимущество над certbot?
Или запускать certbot renew шириат не позволяет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Наиболее простой способ получения и обновления сертификатов ..."  +1 +/
Сообщение от PavelR (??) on 09-Июл-17, 10:24 
> Как-то не очевидно, в чем его преимущество над certbot?
> Или запускать certbot renew шириат не позволяет?

В моем случае на сервере нет PHP, но есть curl / openssl.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Гость (??) on 09-Июл-17, 16:21 
Вам не повезло с ОС.
У других эта опция есть.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "Наиболее простой способ получения и обновления сертификатов ..."  +1 +/
Сообщение от Аноним (??) on 09-Июл-17, 23:15 
certbot не понравился тем, что сильно раздут и норовит править конфиги если не указал certonly. Dehydrated  предельно прост и ничего лишнего не пытается делать.


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 10-Июл-17, 13:41 
Да, но для себя нашёл заметное преимущество в случае certbot на ubuntu – после установки пакета certbot с их "фирменного" ppa:certbot/certbot он прописался и в cron.d, и добавил systemd timer. В случае с другими дистрами не проверял, но это очень обрадовало, т.к. настройку планировщика я всегда делаю в последнюю очередь и могу про неё вообще забыть.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от vantoo (ok) on 12-Июл-17, 11:36 
А чем он лучше скрипта letsencrypt.sh? Там все те же шаги нужно сделать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от PavelR (??) on 12-Июл-17, 12:40 
> А чем он лучше скрипта letsencrypt.sh? Там все те же шаги нужно
> сделать.

Это он и есть, только его переименовали из-за использования имени letsencrypt.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от vantoo (ok) on 12-Июл-17, 13:02 
Ну тогда, от себя добавлю, что вещь хорошая, давно работает без проблем и при установке не тянет за собой кучу пакетов в питоном.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Ergil (ok) on 14-Июл-17, 04:30 
acmetool тоже не тянет никаких пакетов, приходит один, без ансамбля и работает, при этом гораздо удобней в использовании.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Ergil (ok) on 14-Июл-17, 04:32 
> Да, но для себя нашёл заметное преимущество в случае certbot на ubuntu
> – после установки пакета certbot с их "фирменного" ppa:certbot/certbot он прописался
> и в cron.d, и добавил systemd timer. В случае с другими
> дистрами не проверял, но это очень обрадовало, т.к. настройку планировщика я
> всегда делаю в последнюю очередь и могу про неё вообще забыть.

acmetool при выполнении acmetool quickstart(первой команды, что нужно сделать, когда его поставил, что бы сконфигурить его) не самовольничает, а спрашивает нужно ли прописаться в крон. Такое поведение правильней. Нефига тут самому из пакета лезть в cron.d и systemd timer'ы, надо спрашивать у того, кто тебя поставил и конфигурит нужно ли это.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

20. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от PavelR (??) on 14-Июл-17, 05:32 
> acmetool тоже не тянет никаких пакетов, приходит один, без ансамбля и работает,
> при этом гораздо удобней в использовании.

"гораздо удобней" - это как?

Оно вам автоматически конфиги веб-сервера правит?

Для меня всё использование "dehydrated" сводится к двум действиям

- правка файла domains.txt
- запуск команды "dehydrated -c"

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

У вас использование "гораздо удобней". В чем это проявляется?

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от nur (ok) on 24-Июл-17, 13:36 
а можно пример для ejabberd например?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Blind Vic (ok) on 01-Авг-17, 08:36 
Python? На сервере нет Python?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

23. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 23-Авг-17, 14:10 
можно
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

25. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Аноним (??) on 01-Сен-17, 10:07 
Чем acme.sh не устроил?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Наиболее простой способ получения и обновления сертификатов ..."  +/
Сообщение от Anonizmus on 04-Сен-17, 23:33 
а где этот пример увидеть?
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor