Имею следующий сертификат:
# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Found the following certs:
Certificate Name: domain.example
Domains: domain.example imap.domain.example mail.domain.example pop.domain.example smtp.domain.example www.domain.example
Expiry Date: 2019-09-09 03:34:20+00:00 (VALID: 62 days)
Certificate Path: /etc/letsencrypt/live/domain.example/fullchain.pem
Private Key Path: /etc/letsencrypt/live/domain.example/privkey.pem
Теперь я хочу удалить domain.example
и www.domain.example
из сертификата, потому что веб-сервер переехал в другой экземпляр. Тот факт, что записи DNS были изменены, означает, что процесс обновления не удастся, если domain.example
и www.domain.example
все еще являются частью сертификата, потому что записи DNS теперь указывают на другой IP-адрес.
Как я могу удалить определенные имена хостов из сертификата Let's encrypt, не удаляя сертификат и не создавая новый?
Я обычно не утруждаю себя перевыпуском сертификатов в этом случае. Я просто редактирую файл конфигурации в /etc/letsencrypt/renewal/example.com.conf
и удалите оттуда домен. При следующем обновлении новый сертификат больше не будет содержать удаленный домен.
Но в вашем случае, поскольку имя, которое вы хотите удалить, было исходным для сертификата, я бы посоветовал вам вообще не обновлять этот сертификат, а удалить файл конфигурации обновления для старого сертификата, а затем выпустить новый сертификат только с именами ты хочешь сохранить.
Как я могу удалить определенные имена хостов из сертификата Let's encrypt, не удаляя сертификат и не создавая новый?
Ты не можешь.
Сертификат - это в основном открытый ключ, некоторые метаданные (например, даты и список имен хостов) и подпись поверх все указанное выше (подпись вычисляется ЦС, доставляющим этот сертификат).
Это означает, что после выпуска вы можете изменить ничего в нем, иначе подпись больше не будет совпадать и будет отклонена как недействительная.
Вам нужно сгенерировать новый сертификат с нуля. Вам не нужно удалять текущий, вы можете продолжать использовать его или нет, никакого вреда не будет, если некоторые имена в нем больше не существуют или не разрешаются. Но вы можете создавать новые с нужным вам набором имен.
Это также показывает опасность создания сертификатов для нескольких имен: это может стать стимулом, поскольку снижает количество обрабатываемых сертификатов, но связывает судьбу всех имен друг с другом. Когда все автоматизировано, как и должно быть при работе с Let's Encrypt, не должно быть проблем иметь один сертификат на имя. Конечно, ситуация иная, если вам нужно управлять миллионами имен.