Как воссоздать зашифрованный сертификат с открытым ключом из прошлого?
Итак, у нас есть недействительный зашифрованный сертификат, когда мы пытаемся его обновить, открытый ключ меняется. Есть ли способ сохранить старый открытый ключ? Наши клиенты реализовали это в целях закрепления 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. Можно ли сохранить старый? Пожалуйста, помогите, спасибо!
1 ответ
На самом деле это возможно, и решение следующее:
Перейдите в новую папку и запустите:
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
Это будет указывать веб-серверу новый сертификат (полная цепочка) при использовании старого закрытого ключа.
Оригинальное обсуждение и решение были размещены здесь.