Докладна інструкція з встановлення SSL-сертифіката let's Encrypt на сервер CMS Bitrix та Nginx

Так, на Хабре вже багато текстів про сертифікати let's Encrypt, але повної покрокової інструкції я, на жаль, не знайшов. Хотів заповнити пробіл. До того ж, з травня 2016 року в процесі установки відбулися незначні зміни, які можуть збити з пантелику новачка. Тому я вирішив написати цю інструкцію. Так сказати собі на пам'ять і іншим на допомогу.

Ця інструкція, в першу чергу, повинна бути цікава новачкам.

image

Якщо у вас всі налаштування встановлені за замовчуванням, можна дивитися ті шляхи, які я навів. Тобто, якщо ви використовуєте систему, встановлену за допомогою скрипта Bitrix environment на операційній системі CentOS 6.X. Якщо ж ні, ви і самі знаєте де що лежить.

Установка
Перше, що необхідно зробити — встановити git:

# yum install git

Далі переходимо в директорію /tmp:

# cd /tmp

З допомогою git завантажуємо файли let's Encrypt. Сам скрипт тепер називається certbot:

# git clone https://github.com/certbot/certbot


Переходимо в завантажену директорію:

# cd certbot

На всяк випадок, даємо права на виконання для файлу скрипта:

# chmod a+x ./certbot-auto

Отримання сертифіката
Далі слідує команда безпосередньо отримання сертифіката:

# ./certbot-auto certonly --webroot --agree-tos --email mypost@my-domain.ru -w /home/bitrix/www/ -d my-domain.ru -d www.my-domain.ru

--webroot — так як автоматична установка для nginx поки не надійна, використовуємо цей ключ;
--agree-tos — погоджуємося з ліцензійною угодою;
--email mypost@my-domain.ru — вказуємо свій e-mail. Надалі він може стати в нагоді для відновлення свого облікового запису;
-w /home/bitrix/www — вказуємо кореневу директорію сайту;
-d my-domain.ru — наш домен. так само можна вказувати і піддомени, наприклад, -d site.my-domain.ru.

Після цьогу скрипт почне роботу і запропонує встановити відсутні пакети. Погоджуємося і чекаємо.

Якщо все завершиться успішно, ви побачите повідомлення:

IMPORTANT NOTES:
 
- Congratulations! Your certificate and chain have been saved at
 
/etc/letsencrypt/live/my-domain.ua/fullchain.pem. Your
 
cert will expire on 2016-08-21. To obtain a new version of the
 
certificate in the future, simply run Certbot again.
 
- If you lose your account credentials, you can recover through
 
e-mails sent to mypost@my-domain.ru.
 
- Your account credentials have been saved in your Certbot
 
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 Certbot so
 
making regular backups of this folder is ideal.
 
- If you like Certbot, please consider supporting our work by:
 

 
Donating to ISRG / let's Encrypt: https://letsencrypt.org/donate
 
Donating to EFF: https://eff.org/donate-le
 

Сертифікати встановлено, залишилося лише вказати nginx'у, де вони лежать.

Налаштування
Відкриваємо конфігураційний файл ssl.conf:

# vim /etc/nginx/bx/conf/ssl.conf

Якщо у вас вже були встановлені сертифікати, видаляємо або коментуємо рядки з ними і вставляємо нові:

ssl_certificate /etc/letsencrypt/live/my-domain.ua/fullchain.pem;
 
ssl_certificate_key /etc/letsencrypt/live/my-domain.ua/privkey.pem;
 

Не забуваємо включити ssl, якщо цього не було зроблено раніше:

ssl on;
 
keepalive_timeout 70;
 
keepalive_requests 150;
 
ssl_session_cache shared:SSL:10m;
 
ssl_session_timeout 10m;
 

Після цього перезапускаємо nginx:

# service nginx reload

Якщо він не видав ніяких помилок, значить все в порядку. Можна зайти на сайт і подивитися, що вийшло.

Оновлення
Сертифікат видається на 90 днів, тому що після цього терміну потрібно буде його оновити. Робиться це командою:

# certbot-auto renew

Її так само можна поставити у cron.

На цьому все. Для складання інструкції я використав статтю Yet another інструкція з отримання сертифіката ssl let's Encrypt і офіційний гайд.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.