Насправді все дуже просто – треба встановити або зклонувати с git репозіторія скрипт який дозволяє працювати з Certbot ACME
1 |
git clone https://github.com/letsencrypt/letsencrypt && cd letsencrypt |
Перш ніж замовляти сертифікат – треба зробити налаштування домену, бо для підтвердження потрібно щоб домен працював та обробляв запити. Також замовляти сертифікат можно лише з того IP який стоїть у ДНС для цього домену. Якщо з цим все добре – то залишається зробити запит за сертифікат командою:
1 |
./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory -a manual auth |
Після запуску команди – будуть підтягнуті та встановлені всі необхідні пакети.
Далі буде запит e-mail адреси для різних повідомлень, підтвердження правил роботи з сервісом, підтвердження на додавання адреси до бази сервісу, ip до бази сервісу, після чого буде запит на доменне ім’я для якого потрібен сертифікат. Якщо все зроблено вірно – система видаст повідомлення:
1 2 3 4 5 6 7 8 9 10 11 |
------------------------------------------------------------------------------- Create a file containing just this data: Ziy0H_MNgSb0Ku7pScXb1o9aF9c3d6j4Mo1Co5yDgIY.YvfwdNIWdxKdG9Tt96ejhGJNusxtpPZekQAB2li26os And make it available on your web server at this URL: http://domain.xyz/.well-known/acme-challenge/Ziy0H_MNgSb0Ku7pScXb1o9aF9c3d6j4Mo1Co5yDgIY ------------------------------------------------------------------------------- Press Enter to Continue |
Тут потрібно створити у DocumentRoot домену диреторії .well-known/acme-challenge та в цій диреторії потрібно створити файл Ziy0H_MNgSb0Ku7pScXb1o9aF9c3d6j4Mo1Co5yDgIY та додати у Файл строку Ziy0H_MNgSb0Ku7pScXb1o9aF9c3d6j4Mo1Co5yDgIY.YvfwdNIWdxKdG9Tt96ejhGJNusxtpPZekQAB2li26os
Після цього потрібно перевірити що посилання працює корректно та віддає потрібний контент. Якщо все добре – у консолі натискаємо Enter та отримуємо сертифікат.
Далі перевіряємо у директорії /etc/letsencrypt/live/DOMAIN/ наявність ключа та сертифікатів.
Далі додаємо їх у вебсервер та насолоджуємось
1 2 3 4 |
SSLEngine on SSLCertificateFile /etc/letsencrypt/archive/domain.xyz/cert1.pem SSLCertificateKeyFile /etc/letsencrypt/archive/domain.xyz/privkey1.pem SSLCertificateChainFile /etc/letsencrypt/archive/domain.xyz/fullchain1.pem |
Ще цікаво те – що у мене на apache2.4 з openssl 1.0.1t зпрацював SNI та у мене два домени з SSL працюють на одній IP адресі. Думаю що скоро ще додам до того сервера ще SSL сертифікатів та подивлюсь чи дійсно SNI працює…