ssl, letsencrypt and more

2

Здарова щеглы! Сегодня будем настраивать шифрование для нашего любимого сайтика!

Спешал фо мамкины админы и диванные девопсы, ну, короче, для себя любимого 😉 В действительности, это уже не “крутая плюшка” на сайте, а необходимость в том числе для СЕО. Законодатели этих ваших интернетов (читать как гугол и иже с ним) либо выбрасывают из выдачи сайтики без SSL, либо помещают его на самое дно. Да и вроде как 2020 год на дворе, типа секурность и все дела, все ж хотят украсть ваши очень ценные секреты, ну-у-у там, размер труселей при сёрфинге алиэкспресса и т.п. поэтому товарищ бди и шифруй что можно, в том числе и свои соединения! 😉

Нам понадобятся:
  • Любой linux (Centos 7 ванлав <3)
  • Сайтик под nginx (Например wordpress). Вообще можно и apache, но надо ж поддержать Сысоева! Лапы прочь от свободного ПО! Вива ла резистон! Впрочем, чёт меня понесло, опять пилюльки свои забыл…
  • Ну и мозги канеш (Пфф, лол, в 2к20 мозги, в IT, когда есть гугол и стэковерфлоу… ойлол ну и сказану-у-ул ))0)

Собсно, для centos статья должна закончиться, грубо говоря, двумя командочками

yum install -y certbot && \
certbot certonly --cert-name ololo.site --server https://acme-v02.api.letsencrypt.org/directory -d ololo.site -d www.ololo.site

Но это ж ску-у-у-учно-о-о-о и такой серт будет актуален только для двух доменов ololo.site и www.ololo.site, а у нас-то с вами их 100500 (ну, в перспективе >_>), поэтому пристёгивайтесь покрепче, щас я вас научу как замутить wildcard серт.


Допустим, у нас уже есть сайтик на WP под nginx, теперь регистрируемся на cloudflare, это бесплатно если у нас некоммерческий сайтик (сорян, мамкины бизнесмены, вам придётся юзать хостинг с API, об этом ниже) и на вкладке SSL/TLS подрубаем серт. Всё, готово, у нас халявный wildcard, но есть одно “но”, скачать мы его не сможем, ацтой… Штож, в этом случае есть ещё один варик, но есть парочка требований

Если с DNS выбора как такового нет, нужен обязательно API, то certbot или acme или dehydrated хотя я вообще не понимаю нафига он нужен если есть acme, вобщем пофиг, выбирайте сами, аффтар будет юзать acme. Из плюсов такого метода – чистый shell, ни тебе путона, ни тебе пакетных зависимостей, в общем то что нам нужно. Впрочем, certbot есть и в докере, так что можно заморочиться и с ним. Короче! Чё пристали? Сказал acme, значит – acme!

Как тру одмены всё делаем из под рута! Устанавливаем

curl https://get.acme.sh | sh

Создаём токен для DNS API, так как у нас в примере linode, это делается тут после чего идём снова в консоль и выполняем подставив свой токен

export LINODE_V4_API_KEY="OLOLOTUTMOITOKEN"
acme.sh --issue --dns dns_linode_v4 --dnssleep 1200 -d ololo.site -d *.ololo.site

Если всё прошло без ошибок, будет создана директория /root/.acme.sh/ololo.site с нашими сертами. Собсно теперь можно прям их в конфигах nginx юзать, но лично я следуя канонам создам директорию

mkdir -p /etc/letsencrypt/live/ololo.site

и проинсталлю туда наши серты

acme.sh --install-cert -d ololo.site \
--cert-file /etc/letsencrypt/live/ololo.site/cert.pem \
--key-file /etc/letsencrypt/live/ololo.site/key.pem \
--fullchain-file /etc/letsencrypt/live/ololo.site/fullchain.pem \
--ca-file /etc/letsencrypt/live/ololo.site/ca.pem \
--reloadcmd "systemctl restart nginx.service"

Ну и собсно проверить что в кроне появилась запись, либо добавить её самостоятельно

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

За сим вынужден откланяться, счастливо оставаться, щеглы! 😉

2

One thought on “ssl, letsencrypt and more

  1. 1) certbot тоже умеет в * через dns auth, гуглится на раз, требуется днс с поддержкой хуков и апи (сразу скажу, яндекс сломан, у нас ТХТ запись могла появиться в выдаче через час, а могла через сутки.
    2) зачем в конце ава Enjoykin?
    3) 1 строка для комментов? Это особая форма издевательства?

Leave a Reply

Your email address will not be published. Required fields are marked *