acme.sh && nginx на сервері Debian
Вітаю!
сьогодні у нас логічне продовження посту https://blog.clever-games.win/post/31
автоматизовуємо генерування сертифікатів від letsencrypt
updated
розпочнемо
заглянемо в документацію https://github.com/Neilpang/acme.sh
встановлення відбувається так
на всякий випадок встановимо ще дещо необхідне, і тицнемо встановлення ще раз
далі створимо окремим файлом під назвою acme_http частину конфіга nginx
і так, я знаю що можна написати цей location і без "^...$", проте мені лінь поправляти
працює -- отже не лайно
підключаємо цей кусок конфіга у всіх server всіх субдоменів в конфігу nginx наступним чином
підключати можна і де слухаємо 80 порт, і 443 (якщо ми оновляємо існуючий сертифікат без змін)
якщо ми ще й додаємо новий субдомен до ряду існуючих, можна прописати так
у моєму випадку (лінюся поправляти конфіги, тому зберігаю сертифікати туди ж, де лежать старі, згенеровані за допомогою certbot)
генерування відбувається таким чином
для примусового генерування сертифікату раніше ніж через 60 днів до команди вище потрібно додати
напишемо скрипт для того щоб за допомогою crontab генерувати сертифікати заново щотижня
clevergames.sh
для запуску скрипта від sudo --
додамо строчку (тут у нас erlang -- імя користувача)
застосуємо зміни
змінимо власника та встановимо права 755 на файл
створимо cron-завдання
і далі
запуск з консолі для перевірки генерації сертифіката
от і все
2018/05/13 01:41сьогодні у нас логічне продовження посту https://blog.clever-games.win/post/31
автоматизовуємо генерування сертифікатів від letsencrypt
updated
розпочнемо
заглянемо в документацію https://github.com/Neilpang/acme.sh
встановлення відбувається так
git clone https://github.com/Neilpang/acme.sh.git cd ./acme.sh ./acme.sh --install
на всякий випадок встановимо ще дещо необхідне, і тицнемо встановлення ще раз
apt-get install socat ./acme.sh --install
далі створимо окремим файлом під назвою acme_http частину конфіга nginx
location ~ ^/(.well-known/acme-challenge/.*)$ { proxy_pass http://127.0.0.1:9999/$1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
і так, я знаю що можна написати цей location і без "^...$", проте мені лінь поправляти
працює -- отже не лайно

підключаємо цей кусок конфіга у всіх server всіх субдоменів в конфігу nginx наступним чином
include acme_http;
підключати можна і де слухаємо 80 порт, і 443 (якщо ми оновляємо існуючий сертифікат без змін)
якщо ми ще й додаємо новий субдомен до ряду існуючих, можна прописати так
server{ listen 80; server_name new.domain.win; include acme_http; }
у моєму випадку (лінюся поправляти конфіги, тому зберігаю сертифікати туди ж, де лежать старі, згенеровані за допомогою certbot)
генерування відбувається таким чином
./acme.sh --issue --standalone --httpport 9999 -d clever-games.win -d blog.clever-games.win -d new.clever-games.win -d www.clever-games.win --certpath /etc/letsencrypt/live/clever-games.win/cert.pem --keypath /etc/letsencrypt/live/clever-games.win/privkey.pem --fullchainpath /etc/letsencrypt/live/clever-games.win/fullchain.pem;
для примусового генерування сертифікату раніше ніж через 60 днів до команди вище потрібно додати
--force
напишемо скрипт для того щоб за допомогою crontab генерувати сертифікати заново щотижня
clevergames.sh
#!/bin/bash ./acme.sh --issue --standalone --httpport 9999 -d clever-games.win -d blog.clever-games.win -d new.clever-games.win -d www.clever-games.win --certpath /etc/letsencrypt/live/clever-games.win/cert.pem --keypath /etc/letsencrypt/live/clever-games.win/privkey.pem --fullchainpath /etc/letsencrypt/live/clever-games.win/fullchain.pem --force; service nginx force-reload
для запуску скрипта від sudo --
sudo vim /etc/sudoers
додамо строчку (тут у нас erlang -- імя користувача)
erlang ALL=(root) NOPASSWD: /home/acme.sh/clevergames.sh
застосуємо зміни
sudo /etc/init.d/sudo restart
змінимо власника та встановимо права 755 на файл
sudo chown erlang:erlang -R /home/acme.sh sudo chmod 0755 /home/acme.sh/clevergames.sh
створимо cron-завдання
sudo crontab -u root -e
і далі
5 0 * * 6 "sudo /home/acme.sh/clevergames.sh"
запуск з консолі для перевірки генерації сертифіката
sudo /home/acme.sh/clevergames.sh
от і все
