Итак, у нас есть недействительный сертификат. Давайте зашифруем сертификат, когда мы попытаемся его обновить, открытый ключ изменится. Есть ли способ сохранить старый открытый ключ? У наших клиентов это реализовано для закрепления SSL.
certbot certificates
показывает:
Certificate Name: domain.com-0001
Domains: domain.com api.domain.com beta-api.domain.com beta.domain.com demo.domain.com
Expiry Date: 2018-04-16 11:58:34+00:00 (INVALID: EXPIRED, REVOKED)
Certificate Path: /etc/letsencrypt/live/domain.com-0001/fullchain.pem
Private Key Path: /etc/letsencrypt/live/domain.com-0001/privkey.pem
Обновление действительно работает, но генерирует новый SHA256. Можно ли сохранить старую? Пожалуйста, помогите, спасибо!
Собственно, это возможно, и решение следующее:
Перейдите в новую папку и запустите:
sudo certbot certonly --csr /etc/letsencrypt/csr/crs-filename.pem
Эта команда сгенерирует новый действительный сертификат letsencrypt внутри этой папки.
Затем вам нужно создать полную цепочку вручную, запустив:
sudo cat filename-cert.pem filename-chain.pem > filename-fullchain.pem
Последний шаг указывает на этот файл внутри конфигурации Nginx (в моем случае это Nginx):
sudo nano /etc/nginx/sites-enabled/domain.com.conf
Добавьте следующие строки:
listen 443 ssl;
ssl_certificate /home/username/letsencrypt/filename_fullchain.pem;
ssl_certificate_key /etc/letsencrypt/archive/domain.com/privkey.pem
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
Перезапустите Nginx, запустив:
sudo service nginx restart
Это укажет веб-серверу на новый сертификат (полная цепочка) при использовании старого закрытого ключа.
Было опубликовано оригинальное обсуждение и решение Вот.