# Generate SSL certificate via Lietencrypt ###### tags: `DevOps` #### Генерируем сертификат Первым делом запускаем certbot в докере ```bash= docker run -it --rm -v /home/letsencrypt/certs:/etc/letsencrypt -v /home/letsencrypt/data:/data/letsencrypt certbot/certbot certonly --manual --preferred-challenges=dns --email vova.lunev@devhouse.pro --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.example.com ``` Далее нас просят добавить DNS запись типа TXT ```bash= Please deploy a DNS TXT record under the name _acme-challenge.example.com with the following value: Ofc6EQd8llN1PUxhbzgC9mt81bLYEzENZQZRInoLLfo Before continuing, verify the record is deployed. ``` > После того как мы добавили в DNS ждем примерно 15 минут что бы Letsencrypt узнал об этом. Если все прошло успешно, то вы увидите это ```bash= IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your certificate will expire on 2021-10-25. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - 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 ``` > Полученные сертификаты можно использовать. По истечению срока годности придет уведомление на указанную почту. После этого можно будет перевыпустить сертификат, но только с той же машины с которой создавали, и на машине должен быть старый сертификат #### Генерируем PFX из полученных сертификатов ```bash= openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile fullchain.pem ``` > Следуя инструкции создаем сертификат. Советую сохранить где-то пароль от него. Полученный сертификат можно загружать например на Azure. #### Загрузка SSL сертификата в Kubernetes Получаем нужный нам формат ```bash= cat cert.pem fullchain.pem > cert.crt ``` Загружаем в куб ```bash= kubectl create secret tls bizbot-ssl-cert --cert=ssl-bundle.crt --key=private.key -n prod ```