Разное

Letsencrypt auto: получение сертификата по шагам / Хабр

Содержание

получение сертификата по шагам / Хабр

В данной статье будет описан реальный способ получения сертификата от

Let’s Encrypt

в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив

Linux

.

В первые дни открытия заявок на бета-тестирование и было принято решение записаться и вот недавно пришло письмо, которое сообщает о том, что теперь программа ACME сгенерирует валидный сертификат для нашего домена.

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

Как это работает

Полное описание процесса доступно по

этой ссылке

.

Важно лишь знать, что для подтверждения владения доменом и успешной генерации сертификата нужно будет иметь доступ к записям DNS или к серверу куда ссылается A-запись, что вполне логично.

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

Процесс по шагам

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

[11/01/17] Новый клиент CertBot

Небольшое обновление статьи в 2017 году.

Теперь можно установить CertBot и получить сертификат в ручном режиме.

Краткая инструкция:

1. Скачиванием дистрибутив

wget https://dl.eff.org/certbot-auto

2. Установка прав на файл

chmod a+x certbot-auto

3. Запуск для получения сертификата в ручном режиме

./certbot-auto certonly --authenticator manual

4. Следуйте указаниям программы (подробнее смотрите в полной инструкции ниже с шага № 4).

Подробная инструкция (старый клиент — всё ещё работает)

Использовалась официальная инструкция.

Пользователи Linux могут использовать текст ниже как пример генерации сертификата в ручном режиме.

1. Запустите ваш любимый дистрибутив Linux (мы использовали Debian 8).

либо 2. Установите Git и выполните команды ниже:

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

или 2. Скачайте и распакуйте в папку данный архив и перейдите в эту папку

3. Запустите установку и генерацию с помощью

./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth

Вам будет предложено ввести электронную почту для восстановления в будущем.

Ключ -a manual позволит сгенерировать ключи в ручном режиме без их автоматической установки на веб-сервер.

4. Далее введите домены для которых вы хотите создать сертификаты

5. Подтвердите сохранение вашего адреса в логах Let’s Encrypt

6. Подтвердите владение доменом

В сентябре 2016 года произошли небольшие изменения в порядке получения сертификата. Спасибо toxi_roman за обновление.

Старый способ подтверждения с text/plain (не актуально по состоянию на октябрь 2016 г.)

Это один из ответственных моментов в режиме ручной регистрации.

Обратите внимание:

нас просят создать ответ на запрос, который возвращает

Content-Type text/plain

.

Такой ответ не пройдёт и подтверждение выдаст ошибку:

Нужно, чтобы было так:

Если у вас сервер на Windows (с поддержкой Razor Views, аналогично и с MVC), то самый простой способ создания правильного ответа:

а) создать папку .well-known и в ней папку acme-challenge

б) поместить туда файл [запрос].cshtml

в) в содержание этого файла добавить:
@{Response.ContentType = "text/plain";Response.Charset = "";}здесь проверочный код

7. После успешной проверки, будут созданы следующие сертификаты в папке /etc/letsencrypt/live/[имя домена]:

privkey.pem — приватный ключ для сертификата

Используется Apache для SSLCertificateKeyFile и nginx для ssl_certificate_key.

cert.pem (сертификат сервера)

Используется Apache для SSLCertificateFile.

chain.pem (сертификат цепочки)

Он же используется Apache для SSLCertificateChainFile.

fullchain.pem (соединение chain.pem и cert.pem)

Он же используется nginx для ssl_certificate.

7. Теперь пришло время сконвертировать его в родной для Windows .pfx формат.

Перейдите в папку /etc/letsencrypt/live/[имя домена] (откройте терминал в режиме администратора с помощью команды su):

cd /etc/letsencrypt/live/[имя домена]

Запустите OpenSSL с помощью команды:

openssl

и начните конвертацию с помощью команды:

pkcs12 -inkey privkey.pem -in fullchain.pem -export -out mydomain.pfx

Вас попросят ввести пароль и подтвердить его.

7.2 Выходим из OpenSSL с помощью команды quit

7.3 Копируем итоговый файл в директорию нашего пользователя
cp --no-preserve=all mydomain.pfx /home/(имя пользователя)/Documents

8. Мы получили сертификат mydomain.pfx, который теперь можем использовать в Windows-окружении.

Для обновления сертификата в ручном режиме:
./letsencrypt-auto certonly --renew-by-default -a manual

Важно знать, что сертификаты Let’s Encrypt валидны 90 дней. Рекомендуется обновлять их каждые 60 дней. На электронную почту, которую вы указали для генерации, будут приходить уведомления об истечении сертификата.

Буду рад услышать ваши замечания или пожелания к статье.

Настройка Nginx с Let’s Encrypt на CentOS 7 / Хабр

Наверно, многие уже в курсе, что компания Let’s Encrypt раздает бесплатные SSL-сертификаты на https://letsencrypt.org. Как же его получить и настроить на своем сервере под управлением CentOS 7 и Nginx?

Введение

Давайте его получим. Let’s Encrypt это новый центр сертификации (CA), который позволяет простым способом бесплатно получить и установить TLS / SSl сертификат, позволяя нам шифровать HTTPS трафик на ваших веб-серверах. Этот процесс уже автоматизирован программой letsencrypt, но, к сожалению, только под управлению веб-серверами Apache.

В этом уроке я покажу вам, как получить SSL сертификат под Nginx, CentOS 7. Также настроим автоматическое продление сертификата, так как он дается на 90 дней.

Шаг 1 — Установка клиента Letsencrypt

Итак, что мы имеем:
— Веб сервер под управлением CentOS, Nginx;
— Установленные программы Git, Bc.

На всякий случай:

sudo yum -y install git bc

После того, как git и bc установлены, переходим к клонированию проекта letsencrypt из GitHub.

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Теперь у вас должна быть копия проекта в /opt/letsencrypt.

Шаг 2 — Получение сертификата

Letsencrypt предоставляет множество способов получения SSL-сертификатов с помощью различных плагинов. В отличии от плагина Apache, который устанавливается автоматически, нам придется ставить сертификат вручную.

Установка сертификата SSL

Переходим к проекту Letsencrypt, куда мы клонировали файлы. И запускаем генерацию сертификатов командой letsencrypt-auto certonly, используя плагин webroot.

-d example.com -d www.example.com — наши домены

—webroot-path=/usr/share/nginx/html директория, где лежит наш проект

cd /opt/letsencrypt
./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com

Примечание: запускаем приложение letsencrypt-auto без sudo

После того, как letsencrypt инициализирует, нам необходимо будет вести дополнительные данные. Предложенные вопросы могут варьироваться в зависимости от того, как давно вы использовали letsencrypt раньше, но мы запускаем первый раз.

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

Соглашайтесь с условиями пользования Letsencrypt.

Если все прошло успешно, тогда в консоли вы должны увидеть примерно это:

Output:
IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to [email protected]
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your
   cert will expire on 2016-03-15. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - If 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

Мы видим, куда сохранились созданные сертификаты /etc/letsencrypt/live/example.com/ и дату истечения действия сертификата 2016-03-15.

Возможные ошибки:

Если вы получили ошибки, типа: Failed to connect to host for DVSNI challenge, настройте firewall вашего сервера, что бы TCP трафик проходил по портам 80 и 443.

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

cert.pem: сертификат для вашего домена

chain.pem: Let’s Encrypt цепь сертификатов

fullchain.pem: cert.pem и chain.pem

privkey.pem: Сертификат с приватным ключом

В целях дальнейшего повышения уровня безопасности, мы сформируем ключ по алгоритму шифрования Диффи-Хеллмана. Чтобы создать 2048-битный ключ, используйте следующую команду:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Это нужно, чтобы у нас заработал Forward Secrecy. Прямая секретность означает, что если третья сторона узнает какой-либо сеансовый ключ, то она сможет получить лишь доступ к данным, защищенным лишь этим ключом. Для сохранения совершенной прямой секретности ключ, используемый для шифрования передаваемых данных, не должен использоваться для получения каких-либо дополнительных ключей.

Процесс может занять несколько минут, но когда ключ создастся, он будет помещен в каталог в /etc/ssl/certs/dhparam.pem.

Шаг 3 — Настройка TLS/SSl на веб-сервере Nginx

Настройка конфигурации Nginx, используя SSl — сертификаты.

server {
    # перенаправление с 80 порта, а также с www
    server_name example.com www.example.com
    listen 80;
    return 301 https://www.example.com$request_uri;
}


server {
        listen 443 ssl;

        server_name example.com www.example.com;

        # Указываем пути к сертификатам
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        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_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;

        # позволяем серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;

        location ~ /.well-known {
                allow all;
        }

        # The rest of your server block
        root /usr/share/nginx/html;
        index index.html index.htm;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
}

Перезагружаем Nginx

sudo systemctl reload nginx
Шаг 4 — Настройка автопродление

Сертификаты действительный 90 дней, но рекомендуется продлевать сертификаты каждые 60 дней. Мы это автоматизируем с помощью cron.

Чтобы запустить процесс обновления для всех установленных доменов, выполните следующую команду:

/opt/letsencrypt/letsencrypt-auto renew

Так как мы недавно установили сертификат, то команда будет проверять только дату истечения срока действия и распечатает сообщение, информирующее о том, что сертификат не нуждается в продлении. Вы увидите примерно следующие в консоли:

Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

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

Давайте отредактируем crontab, что бы наши сертификаты обновлялись автоматически. Проверку на обновления мы будем делать каждую неделю. Для редактирования crontab от root пользователя выполните команду:

sudo crontab -e

Добавим следующие строки:

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/systemctl reload nginx

Этак команда создаст cron, который каждый понедельник будет выполнять автоматическое продление letsencrypt сертификатов в 2:30 и перезагружать Nginx в 2:35. Вся информация об обновлении будет логироваться в /var/log/le-renew.log.

Шаг 5 — Обновление Let’s Encrypt (не обязательно)

Всякий раз, когда новые обновления доступны для клиента Let’s Encrypt, вы можете обновить локальную копию, запустив git pull из каталога /opt/letsencrypt:

cd /opt/letsencrypt
sudo git pull

Это позволит загрузить все последние изменения из хранилище для обновления клиента Let’s Encrypt.

Финиш! Ваш веб-сервер теперь использует шифрование TLS / SSL, и все это бесплатно. Давайте шифровать HTTPS контент, стоять на страже неприкосновенности частной жизни. Также это повысит видимость сайта в выдаче Google.

Источники

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7
https://habrahabr.ru/post/252821/

Настройка получения и автопродления SSL сертификата Let’s Encrypt

Уже всем известно, что Let’s Encrypt позволяет получить бесплатный SSL-сертификат на https://letsencrypt.org.

Здесь я опишу, как его получить и настроить на сервере под управлением CentOS 7 и Nginx.

Необходимое ПО:

Клонируем:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt



sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Генерация сертификатов:

cd /opt/letsencrypt
./letsencrypt-auto certonly -a webroot —webroot-path=/path_to_root_web -d example.com -d www.example.com



cd /opt/letsencrypt

./letsencrypt-auto certonly -a webroot —webroot-path=/path_to_root_web -d example.com -d www.example.com

В результате успешного выполнения мы видим, куда сохранились созданные сертификаты /etc/letsencrypt/live/example.com/ и дату истечения действия сертификата.

В целях повышения уровня безопасности, мы сгенерируем ключ по алгоритму шифрования Диффи-Хеллмана. Это нужно, чтобы работал Forward Secrecy. Для создания  2048-битного ключа:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048



sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Настройка конфигурации Nginx:

server {
# перенаправление с 80 порта, а также с www
server_name example.com www.example.com
listen 80;
return 301 https://www.example.com$request_uri;
}


server {
listen 443 ssl;

server_name example.com www.example.com;

# Указываем пути к сертификатам
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

ssl_dhparam /etc/ssl/certs/dhparam.pem;
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_session_timeout 1d;
ssl_session_cache shared:SSL:50m;

# позволяем серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;

location ~ /.well-known {
allow all;
}

# The rest of your server block
root /usr/share/nginx/html;
index index.html index.htm;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

server {

    # перенаправление с 80 порта, а также с www

    server_name example.com www.example.com

    listen 80;

    return 301 https://www.example.com$request_uri;

}

 

 

server {

        listen 443 ssl;

 

        server_name example.com www.example.com;

 

        # Указываем пути к сертификатам

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

 

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

 

        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        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_session_timeout 1d;

        ssl_session_cache shared:SSL:50m;

 

        # позволяем серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей

        ssl_stapling on;

        ssl_stapling_verify on;

        add_header Strict-Transport-Security max-age=15768000;

 

        location ~ /.well-known {

                allow all;

        }

 

        # The rest of your server block

        root /usr/share/nginx/html;

        index index.html index.htm;

 

        location / {

                # First attempt to serve request as file, then

                # as directory, then fall back to displaying a 404.

                try_files $uri $uri/ =404;

                # Uncomment to enable naxsi on this location

                # include /etc/nginx/naxsi.rules

        }

}

sudo systemctl reload nginx



sudo systemctl reload nginx

Настройка автопродления:

Сертификаты действительный 90 дней, но рекомендуется продлевать сертификаты каждые 60 дней. Мы это автоматизируем с помощью cron.

Чтобы запустить процесс обновления для всех установленных доменов, выполните следующую команду:

/opt/letsencrypt/letsencrypt-auto renew



/opt/letsencrypt/letsencrypt-auto renew

sudo crontab -e

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/systemctl reload nginx



sudo crontab -e

 

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

35 2 * * 1 /usr/bin/systemctl reload nginx

P.S.
Если у нас проксирующий Nginx, а сам сайт на другом сервере…

Достаточно на сервере с проксирующим Nginx создать директорию

mkdir -p /var/www/html/my_site



mkdir -p /var/www/html/my_site

и в конфиге сделать секцию

location ~ /\.well-known {
allow all;
root /var/www/html/my_site;
}



location ~ /\.well-known {

allow all;

        root   /var/www/html/my_site;

}

 

 

SSL-сертификат Let’s Encrypt на Nginx |

Проект Let’sEncrypt вошёл в стадию публичной беты 3-го декабря 2015 года. Теперь его можно попробовать.

В чём суть проекта: он позволяет выпускать и продлевать SSL сертификаты бесплатно и автоматически.

На счёт «бесплатно» — здесь всё ясно. Можно бесплатно получить сертификат уровня Domain Validation.

А вот на счёт «автоматически» — чуть посложнее. Разберём процесс получения и установки сертификата.

UPD: Увеличена степень «автоматизма» получения сертификата, убраны однообразные ручные операции.

Испокон веков получение SSL-сертификата было, в некотором роде, геморроем, который заключался в выполнении следующих пунктов:

  • Создание CSR-запроса
  • Отправка CSR-запроса в форму сертифицирующего центра
  • Подтверждение владения доменом при помощи щелчка по ссылке, присланной на почту [email protected]
  • Получение сертификатов
  • Подготовка сертификатов для использования в конкретном web-сервере, в частности, для Nginx, цепочку сертификатов нужно «слеплять» в один.
  • Через год — проделать всё заново.

Так вот, для того, чтобы вам не нужно было проходить через всё это, некоммерческая организация Let’s Encrypt разработала специальный протокол ACME а также клиент, работающий с ним. Также, эта организация создала свой доверенный центр сертификации, который признаётся корневыми центрами сертификации, и уже есть во всех последних версиях браузеров.

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

В частности, если вы используете веб-сервер Nginx, а также, если веб-сервер у вас уже настроен, и работает, а вам нужно получить для него сертификат.

Алгоритм действий для получения сертификата

Условия:

  • Сайт с поддоменами работает на Nginx
  • Сервер работает на Debian Jessie 8.0

Я буду создавать сертификат для своего домена mihanentalpo.me, а также для поддоменов www и redmine. Поддомен www и вам пригодится, а другие поддомены выбирайте по своему усмотрению.

Настройка веб-сервера для использования Let’s Encrypt

Сервер Let’s Encrypt, перед выдачей сертификата убеждается в том, что домен принадлежит именно вам, для этого он обращается по определённому адресу вашего домена, и ожидает получить оттуда определённые данные. Для того, чтобы было удобно проходить эту проверку, будем размещать файлы проверок в конкретной папке.

1. Создадим папку /var/www/letsencrypt, в ней папку для файлов-испытаний letsencrypt и дадим серверу права на них:

# mkdir /var/www/letsencrypt
# mkdir -p /var/www/letsencrypt/.well-known/acme-challenge
# chown -hR www-data:www-data /var/www/letsencrypt

# mkdir /var/www/letsencrypt
# mkdir -p /var/www/letsencrypt/.well-known/acme-challenge
# chown -hR www-data:www-data /var/www/letsencrypt

Можно использовать и другую папку, но всюду где она будет упомянута далее, вам нужно будет также её подменять на свою придуманную.

В эту папку (.well-known/acme-challenge) мы будем класть файлик с «испытанием» для подтверждения владения сервером.

2. Изменим конфигурацию nginx для домена и поддоменов.

В секции server, описывающей ваш домен (порт 80, протокол http), добавим следующий блок:


# Папка с челенджами для ACME 
location ~ /.well-known 
{ 
    location ~ /.well-known/acme-challenge/(.*) 
    {
        default_type "text/plain";
        root /var/www/letsencrypt;
    } 
} 

ВАЖНО! Если в вашем файле конфигурации сервера есть блок для запрета открытия файлов, начинающихся с точки, то нужно вставлять блок с .well-known ДО НЕГО,
иначе при попытке зайти в браузере по адресу myserver.com/.well-known/acme-challenge, вы будете получать 403 ошибку (так как запрещено открытие файлов, начинающихся с точки)
Блок этот может выглядеть вот так:


location ~ /\. 
{
    deny all;
    access_log off;
    log_not_found off;
}

Данную настройку нужно повторить для всех ваших поддоменов!

3. Создадим файл для тестирования доступа к папке с challenge’ами:

# echo "Hello world" > /var/www/letsencrypt/.well-known/acme-challenge/index.html 
# chown www-data:www-data /var/www/letsencrypt/.well-known/acme-challenge/index.html

# echo «Hello world» > /var/www/letsencrypt/.well-known/acme-challenge/index.html
# chown www-data:www-data /var/www/letsencrypt/.well-known/acme-challenge/index.html

4. Перезапускаем nginx, и проверяем, открывается ли что-нибудь из этой папки:

Для проверки открываем адреса (домен конечно нужно подставлять ваш):
http://mihanentalpo.me/.well-known/acme-challenge/index.html
http://www.mihanentalpo.me/.well-known/acme-challenge/index.html
http://redmine.mihanentalpo.me/.well-known/acme-challenge/index.html
Вы должны увидеть «Hello world» в каждом из случаев. Также, надо проверить все остальные ваши домены, если хоть один из них не будет отдавать «Hello world», надо разобраться в чём дело, так как дальше продолжать будет невозможно.

Установим и запустим клиент letsencrypt

1. Установка
Из мануала quick start следует, что установить клиент пока (июнь 2016 года) можно только из гитхаба. (Для некоторых дистрибутивов уже собраны пакеты, но в нашем родном Debian’е всё происходит не так быстро)

Итак:

# cd /opt
# git clone https://github.com/letsencrypt/letsencrypt 
# cd letsencrypt 
# ./letsencrypt-auto

# cd /opt
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt
# ./letsencrypt-auto

При первом запуске, команда letsencrypt-auto установит все пакеты, необходимые ей для работы, поэтому запускать её нужно либо от root’а, либо от имени пользователя, у которого настроено sudo, так как, программа, не найдя root-доступа, пытается запустить sudo.

2. Запуск процедуры получения сертификата:

Следующая команда запустит ручной процесс получения сертификата, в котором будут прописаны все эти указанные домены.

./letsencrypt-auto certonly \
    --webroot -w /var/www/letsencrypt \
    -d mihanentalpo.me -d www.mihanentalpo.me \
    -d redmine.mihanentalpo.me --rsa-key-size 4096

./letsencrypt-auto certonly \
—webroot -w /var/www/letsencrypt \
-d mihanentalpo.me -d www.mihanentalpo.me \
-d redmine.mihanentalpo.me —rsa-key-size 4096

Параметр certonly значает, что нужно только получить сертификат, и никуда автоматически вкорячивать его не надо.
Ключ —webroot означает, что файлы для проверки будут складываться в папку, указанную с ключём «-w»
Ключ -w, за которым следует путь /var/www/letsencrypt, определяет, куда нужно положить файл проверки вашего веб-сервера. А точнее, какой каталог является «корневой», в ней скрипт попытается перейти в подкаталог .well-known/acme-challenge, и положить там файлы challenge (испытаний) для проверки того, что вы владелец сервера.
Ключ -d определяет имя домена, который нужно включить в сертификат. Указать нужно все ваши поддомены. Указывать маску «*» нельзя, только конкретные названия доменов. Первый надо указывать корневой домен, и лишь потом — поддомены.
Ключ —rsa-key-size определяет, насколько сложный ключ нужно формировать (чем сложнее, тем надёжнее, 4096 хватит ещё на 30 лет развития компьютерной техники)

После запуска этой команды, в консоли откроется интерфейс, который начнёт с вами общение.

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

2. Нужно согласиться с пользовательским соглашением

Прохождение процедуры проверки

1. Согласиться с логированием IP-адреса

2. …. А и всё! Если конечно всё настроено правильно. Раньше здесь была инструкция на 5 пунктов о том, как подкладывать файлы challenge вручную в режиме —manual, но поскольку сейчас мы делаем через —webroot, то и процесс весь проходит сам.

3. Далее вы получите примерно такое сообщение об успехе:

 IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at 
/etc/letsencrypt/live/mihanentalpo.me/fullchain.pem. Your cert will expire on 2016-03-15. 
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 

Это значит что файлы сертификатов получены (и лежат они по адресу, в моём случае, /etc/letsencrypt/live/mihanentalpo.me/), и теперь остаётся только подключить их к серверу.

Подключение сертификатов к серверу

Самый простой конфигурационный файл nginx для подключения SSL-шифрования и использования выданных сертификатов (приложение на php-fpm):


# Этот блок сервера для редиректов на https 
server 
{ 
    # Слушаем 80-й порт и перекидываем на https 
    listen *:80; 
    # Перенаправлять будем сайты с www и без www. 
    server_name mydomain.ru www.mydomain.ru; 
    # Собственно правильный редирект, чтобы не было нарушения работы ссылок
    return 301 https://$server_name$request_uri;
} 

# Основной блок сервера 
server 
{ 
    #имя сервера 
    server_name mihanentalpo.me www.mihanentalpo.me; 
    #Используем HTTPS(SSL) 
    listen *:443 ssl; 
    ssl on; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_certificate /etc/letsencrypt/live/mihanentalpo.me/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/mihanentalpo.me/privkey.pem; 
    # Если разбираетесь в обычной настройке сервера nginx, 
    # то дальше можете не смотреть, пойдёт именно она. 

    # логи 
    access_log /mnt/data/logs/nginx/mihanentalpo.me-access.log; 
    error_log /mnt/data/logs/nginx/mihanentalpo.me-error.log; 
    
    # Индекс index index.php index.htm index.html; 
    # Папка 
    root /var/www/mihanentalpo.me; 

    # Это настройка позволяющая открывать статический контент с помощью НЕ-GET запросов 
    error_page 405 = $uri; 

    # Папка с челенджами для ACME 
    # (оставим её здесь как было, так как потом понадобится перевыпускать сертификат)
    location ~ /.well-known 
    { 
        location ~ /.well-known/acme-challenge/(.*) 
        {
            default_type "text/plain";
            root /var/www/letsencrypt;
        } 
    } 

    # Закрываем доступ к файлам начинающимся с точки 
    location ~ /\. 
    { 
        deny all; 
        access_log off; 
        log_not_found off; 
    } 
    # Включаем gzip-сжатие по всему серверу 
    gzip on; 
    gzip_comp_level 4; 
    # Отключаем логи для favicon и robots.txt 
    location = /favicon.ico 
    { 
        log_not_found off; 
        access_log off; 
    } 
    location = /robots.txt 
    { 
        allow all; 
        log_not_found off; 
        access_log off; 
    } 
    #Основной location 
    location / 
    { 
        try_files $uri $uri/ /index.php?$args; 
    } 
    # Передаём обработку PHP-скриптов PHP-FPM 
    location ~ \.php$ 
    { 
        try_files $uri =404; 
        fastcgi_pass 127.0.0.1:9999; 
        fastcgi_index index.php; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_ignore_client_abort off; 
        fastcgi_param APPLICATION_ENV master; 
    } 
} 

Если где-то есть другой 443-сервер для редиректа на 80-й порт, то может быть ошибка:

no «ssl_certificate» is defined in server listening on SSL port while SSL handshaking, client: xxx.xxx.xxx.xxx, server: 0.0.0.0:443

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

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

Проверка сертификата

Проверить сертификат, и узнать о нём максимум информации, можно с помощью различных онлайн-сервисов, таких как https://www.ssllabs.com/ssltest/. Там нужно ввести адрес вашего сайта, и можно получить массу полезной информации, касаемо не только вашего SSL-сертификата, но и того, правильно ли сделаны настройки сервера.

Обновление сертификата

Для выпуска нового сертификата, если у вас истёк предыдущий (а это будет происходить раз в несколько месяцев), нужно запустить команду

# cd /opt/letsencrypt
# ./letsencrypt-auto renew

# cd /opt/letsencrypt
# ./letsencrypt-auto renew

поскольку скрипт помнит о том, как и для каких доменов вы получали сертификаты в прошлый раз, он просто повторит процедуру.

Если у вас добавились поддомены, вы можете выполнить команду, аналогичную представленной выше, добавив туда новый домен.
При этом клиент letsencrypt спросит вас «Сертификат для этого домен уже есть. Обновить его?», на что нужно ответить «да».
После обновления сертификата нужно перезагрузить веб-сервер

/etc/init.d/nginx restart

/etc/init.d/nginx restart

Решение проблем после обновления

После обновления сертификата и перезапуска Nginx у вас может возникнуть одна из следующих проблем:
(увидеть вы их можете, открыв свойства сертификата в браузере)
1) Дата истечения сертификата не изменилась
2) Дата истечения сертификата стала старше чем была
3) Сертификат вообще не работает

У этих проблем, как правило, одна причина: неверно создались симлинки на файлы сертификатов в папке /etc/letsencrypt/live/mysite.com (разумеется, путь должен быть с вашим именем сайта).

1) Проверяем куда ведут ссылки:

# cd /etc/letsencrypt/mysite.com
# ls -l

# cd /etc/letsencrypt/mysite.com
# ls -l

и видим что-то вроде этого (в моём случае):

lrwxrwxrwx 1 root root 55 Nov 23 07:01 ./fullchain.pem -> /etc/letsencrypt/archive/mysite.come/fullchain1.pem
lrwxrwxrwx 1 root root 53 Nov 23 07:00 ./privkey.pem -> /etc/letsencrypt/archive/mysite.com/privkey1.pem

lrwxrwxrwx 1 root root 55 Nov 23 07:01 ./fullchain.pem -> /etc/letsencrypt/archive/mysite.come/fullchain1.pem
lrwxrwxrwx 1 root root 53 Nov 23 07:00 ./privkey.pem -> /etc/letsencrypt/archive/mysite.com/privkey1.pem

2) Проверяем дату создания файлов по ссылкам:

ls -l /etc/letsencrypt/archive/mysite.com

ls -l /etc/letsencrypt/archive/mysite.com

и видим там что-то такое:

-rw-r--r-- 1 root root 1797 Dec 16  2015 cert1.pem
-rw-r--r-- 1 root root 1923 Aug 30 09:41 cert2.pem
-rw-r--r-- 1 root root 1923 Nov 23 06:54 cert3.pem
-rw-r--r-- 1 root root 1675 Dec 16  2015 chain1.pem
-rw-r--r-- 1 root root 1647 Aug 30 09:41 chain2.pem
-rw-r--r-- 1 root root 1647 Nov 23 06:54 chain3.pem
-rw-r--r-- 1 root root 3472 Dec 16  2015 fullchain1.pem
-rw-r--r-- 1 root root 3570 Aug 30 09:41 fullchain2.pem
-rw-r--r-- 1 root root 3570 Nov 23 06:54 fullchain3.pem
-rw-r--r-- 1 root root 1704 Dec 16  2015 privkey1.pem
-rw-r--r-- 1 root root 1704 Aug 30 09:41 privkey2.pem
-rw-r--r-- 1 root root 1704 Nov 23 06:54 privkey3.pem

-rw-r—r— 1 root root 1797 Dec 16 2015 cert1.pem
-rw-r—r— 1 root root 1923 Aug 30 09:41 cert2.pem
-rw-r—r— 1 root root 1923 Nov 23 06:54 cert3.pem
-rw-r—r— 1 root root 1675 Dec 16 2015 chain1.pem
-rw-r—r— 1 root root 1647 Aug 30 09:41 chain2.pem
-rw-r—r— 1 root root 1647 Nov 23 06:54 chain3.pem
-rw-r—r— 1 root root 3472 Dec 16 2015 fullchain1.pem
-rw-r—r— 1 root root 3570 Aug 30 09:41 fullchain2.pem
-rw-r—r— 1 root root 3570 Nov 23 06:54 fullchain3.pem
-rw-r—r— 1 root root 1704 Dec 16 2015 privkey1.pem
-rw-r—r— 1 root root 1704 Aug 30 09:41 privkey2.pem
-rw-r—r— 1 root root 1704 Nov 23 06:54 privkey3.pem

Отсюда видно, что симлинки стоят на древние сертификаты, устаревшие ещё в 2015 году. Новые же сертификаты лежат под именами cert3.pem, chain3.pem, fullchain3.pem.
Пересоздадим симлинки:

# rm /etc/letsencrypt/live/mysite.com/fullchain.pem
# rm /etc/letsencrypt/live/mysite.com/cert.pem
# ln -s /etc/letsencrypt/mysite.com/fullchain3.pem /etc/letsencrypt/live/mysite.com/fullchain.pem
# ln -s /etc/letsencrypt/mysite.com/cert3.pem /etc/letsencrypt/live/mysite.com/cert.pem

# rm /etc/letsencrypt/live/mysite.com/fullchain.pem
# rm /etc/letsencrypt/live/mysite.com/cert.pem
# ln -s /etc/letsencrypt/mysite.com/fullchain3.pem /etc/letsencrypt/live/mysite.com/fullchain.pem
# ln -s /etc/letsencrypt/mysite.com/cert3.pem /etc/letsencrypt/live/mysite.com/cert.pem

И ещё раз перезагрузим nginx:

#/etc/init.d/nginx restart

#/etc/init.d/nginx restart

P.S. Обновил запись, после того, как прочитал статью где меня же тыкают носом в —manual https://sohabr.net/habr/post/279695/

Автоматизация обновлений wildcard сертификата от Let’s Encrypt

Главная страница » Linux » Автоматизация обновлений wildcard сертификата от Let’s Encrypt

Я уже писал об установке и автоматическом продлении wildcard сертификата от Letsencrypt, но всё оказалось немного не так.

Когда пришла пора обновления сертификата, то он почему то автоматически не обновился, а в логах появилась такая запись: “PluginError: An authentication script must be provided with –manual-auth-hook when using the manual plugin non-interactively.

То есть то, ради чего всё и затевалось, автоматическое продление сертификата, не сработало.

Разобравшись в проблеме, делюсь её решением ))

Получение нового или обновление существующего сертификата Let’s Encrypt

Во-первых пришлось перенести DNS с Mail.Ru на один из поддерживаемых certbot, я выбрал Cloudflare, всё написанное ниже относится к нему. Список всех поддерживаемых DNS можно посмотреть на официальном сайте утилиты certbot и по сути принцип работы с ними не сильно отличается.

Так же существует утилита lego, которая существенно расширяет список поддерживаемых DNS серверов. Скачать её можно на github, есть так же подробная документация с примерами использования.

Но вернёмся к “нашим баранам”.

Итак, DNS сервер мы перенесли, сменили записи у регистратора имён, подождали и убедились что всё работает. Далее займемся небольшой подготовительной работой.

В домашнем каталоге создадим папку .secrets и в ней файл cloudflare.ini. Название папки и файла на ваше усмотрение, права на неё только пользователю root.

chmod 0700 /root/.secrets/
chmod 0400 /root/.secrets/cloudflare.ini

Содержание файла cloudflare.ini (email и api key соответственно ваши):

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "xxxxxxxxxx_Cloudflar_Global_API_Key_xxxxxxxxxx"

API Key получаем в личном кабинете Cloudflare

Cloudflare Global API Key

На этом подготовительная работа закончена и приступаем непосредственно к получению нового или обновлению существующего сертификата, для этого выполним следующую команду:

certbot certonly \
	--dns-cloudflare \
	--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
	--dns-cloudflare-propagation-seconds 25 \
	-d grib69.ru -d *.grib69.ru \
	--preferred-challenges dns-01

На выходе должны получить следующее:

Вывод команды certbot

Автоматизация обновлений сертификата

А вот с автоматизацией обновлений в данном случае всё действительно очень просто. Создаем файл letsencrypt.renew, даём ему права на исполнение и забрасываем в /etc/cron.weekly. Содержание файла:

#!/bin/bash
/usr/bin/certbot renew --post-hook "service nginx reload"

Ну или добавляем данную команду в crontab, кому как удобнее.

На этом надеюсь эпопея с автообновлением сертификата закончилась ))

Первый вариант статьи здесь.

P.S. Если данная статья была Вам полезна, не поленитесь поставить лайк. Если остались вопросы не стесняйтесь задавать их в комментариях, будем разбираться вместе ))

Оцените данную запись

 [Всего голосов: 4 — Общая оценка: 5]

Настройка Let’s Encrypt на CentOS 7 – RDB IT Support

 

0. Установка git и bc если не установлены раннее
sudo yum -y install git bc
1. Клонированию проекта letsencrypt из GitHub.
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

 

 

2. Получение сертификата

Переходим к проекту Letsencrypt, куда мы клонировали файлы. И запускаем генерацию сертификатов командой letsencrypt-auto certonly, используя плагин webroot.

 

cd /opt/letsencrypt
./letsencrypt-auto certonly -a webroot --webroot-path=/web/path -d domen.com -d www.domen.com

 

Если все прошло успешно, тогда в консоли вы должны увидеть примерно это:

 

/etc/letsencrypt/live/domen.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domen.com/privkey.pemIMPORTANT NOTES:
- If you lose your account credentials, you can recover through
e-mails sent to [email protected]
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your
cert will expire on 2016-03-15. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- Your account credentials have been saved in your Let's Encrypt
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Let's
Encrypt so making regular backups of this folder is ideal.
- If 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

 

Если вы получили ошибки, типа: Failed to connect to host for DVSNI challenge, настройте firewall вашего сервера, что бы TCP трафик проходил по портам 80 и 443.

 

3. Настройка TLS/SSl на веб-сервере Nginx

 

APACHE:

 

4. Перезапуск Nginx или Apache

 

service nginx restart && service php-fpm restart
service httpd restart

 

5. Настройка автопродления

 

Сертификаты действительный 90 дней, но рекомендуется продлевать сертификаты каждые 60 дней. Мы это автоматизируем с помощью cron.

 

Чтобы запустить процесс обновления для всех установленных доменов, выполните следующую команду:

 

/opt/letsencrypt/letsencrypt-auto renew

 

Так как мы недавно установили сертификат, то команда будет проверять только дату истечения срока действия и распечатает сообщение, информирующее о том, что сертификат не нуждается в продлении. Вы увидите примерно следующие в консоли:

 

Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

 

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

 

6. Редактируем crontab, что бы наши сертификаты обновлялись автоматически. Проверку на обновления мы будем делать каждую неделю.

Для редактирования crontab от root пользователя выполните команду:

 

 

Добавим следующие строки:

 

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/systemctl reload nginx

 

Этак команда создаст cron, который каждый понедельник будет выполнять автоматическое продление letsencrypt сертификатов в 2:30 и перезагружать Nginx в 2:35. Вся информация об обновлении будет логироваться в /var/log/le-renew.log.

давайте зашифровать — ekşi sözlük

client’ta tanımlanan certonly opsiyonu ile sadece sertifika üreten, apache, nginx vs. konfigürasyonlara dokunmayandır.

dökümanında bununla ilgili daha detaylı bilgi bulunabilir:

http://letsencrypt.readthedocs.org/…ing.html#manual

örnek olarak aşağıda vereceğim komut ile doğrabili

certbot-auto certonly —standalone —agree-tos —redirect —duplicate —text —email email @ adresi.com -d domain.com

örnek nginx konfigürasyonu için de bu linkten kopya çekilebilir.

ayrıca zannımca псевдоним olarak bile tanımlanabilecek bir komutu yılda 4 sefer çalıştırmak istemeyenlerin kullanmaması gereken ücretsiz servistir.

редактировать büdüt:

sertifika güncellemesi için çalıştırılacak tek komut

certbot-auto возобновить

bu yüklü sertifikaları algılayıp 30 günden azü oütikresi olga.

бир sefer elle çalıştırın, eğer hata almadıysanız 89-90 gündebelli periyotlarda çalışacak bir cron * ile sertikanızı otomatik güncellersiniz.cronda 15 günde bir çalıştırmak en mantıklısı.

яни йок амелелик фалан.

cron nasıl mı oluşturuluyor? http://crontab-generator.org/

crontab-generatorda «команда для выполнения» kısmına ekleyeceğim komut ne barındırmalı? sertifika yenileyip web sunucusu yazılımını yeniden başlatmalı

«команда для выполнения» kısmına yazacağım şey? / bin / sh / letsencrypt / indirilen / full / yolu / certbot-auto Renew && /etc/init.d/nginx(veya apache2) restart

oluşan cron nasıl mı ekleniyor? «crontab -e»

arada bir de indirdiğiniz klasörde git pull diyip güncellersiniz, hatta onu da crona ekleyin o kadar tembelseniz.

nginx ile ayarlayamayanlar için de;

öncelikle birazdan vereceğim konfigürasyon http2 barındırdığından nginx sürümünüz http / 2 yi tam olarak desteklemeli. sürüm 1.9.5 den büyük veya eşit olmalı. ubuntuda nginx / разработка ppa’sını rahatlıkla kullanabilirsiniz. разработка dese de paketler stable sürümler.

buyrun bu da örnek nginx ayarı, şu an ubuntu server 14.04 lts makinede bunu kullanıyorum:

http://pastebin.com/1fxkpyew

edit büdüt 2: certbot nginxakumyüne dunny baya cipherlar için, gayet de iş görüyor.webroot pah’tir, veya eski tip nginx kapa açtır, обновить ile falan da uğraşmıyorsunuz hatta bu sayede. cronda arkada kendi hallediyor.

Конфигурация SSL | GitLab

Доступные задачи настройки SSL

Omnibus-GitLab поддерживает несколько распространенных вариантов использования SSL-конфигурации.

  1. Разрешить https подключения к службам экземпляра GitLab
  2. Настроить пакеты общедоступных сертификатов для подключений к внешним ресурсам

Хост-услуги

Администраторы могут включить безопасный http, используя любой метод, поддерживаемый службой GitLab.

Сервис Ручной SSL Давайте зашифруем
Первичный домен экземпляра GitLab Да Да
Реестр контейнеров Да Да
Маттермост Да Да
Страницы GitLab Да Нет

Let’s Encrypt Integration

GitLab можно интегрировать с Let’s Encrypt.

Основной экземпляр GitLab

История версий

  • Введено в GitLab 10.5 и отключено по умолчанию.
  • Включено по умолчанию в GitLab 10.7 и новее, если external_url установлен с
    протокол https и никакие сертификаты не настроены.