Здарова щеглы! Сегодня будем настраивать шифрование для нашего любимого сайтика!
Спешал фо мамкины админы и диванные девопсы, ну, короче, для себя любимого 😉 В действительности, это уже не “крутая плюшка” на сайте, а необходимость в том числе для СЕО. Законодатели этих ваших интернетов (читать как гугол и иже с ним) либо выбрасывают из выдачи сайтики без 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
- acme.sh или certbot ну или dehydrated
Если с 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
За сим вынужден откланяться, счастливо оставаться, щеглы! 😉
1) certbot тоже умеет в * через dns auth, гуглится на раз, требуется днс с поддержкой хуков и апи (сразу скажу, яндекс сломан, у нас ТХТ запись могла появиться в выдаче через час, а могла через сутки.
2) зачем в конце ава Enjoykin?
3) 1 строка для комментов? Это особая форма издевательства?