#Что означает сообщение
Key values mismatch
Nginx key values mismatch при запуске TLS означает, что приватный ключ и сертификат не являются парой. Сначала определите, какой server-блок и файлы использует сайт.
#Как отличить причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не та пара | Сравните момент появления признака «Не та пара» с тем, когда ранее работала нужная функция. Важно сопоставить проверку с исходным симптомом, а не с догадкой. | Исправляйте только подтверждённый фактор «Не та пара», сохраняя прежние настройки. Для проверки результата повторите только прежнее действие. |
| Неполная цепочка | Сравните момент появления признака «Неполная цепочка» с тем, когда ранее работала нужная функция. Учитывайте версию Nginx и условия сбоя. | Исправляйте только подтверждённый фактор «Неполная цепочка», сохраняя прежние настройки. Изменения вносите по одному, с возможностью возврата. |
| Формат | Сравните момент появления признака «Формат» с тем, когда ранее работала нужная функция. Учитывайте версию Nginx и условия сбоя. | Исправляйте только подтверждённый фактор «Формат», сохраняя прежние настройки. Для проверки результата повторите только прежнее действие. |
| Старый файл | При диагностике «Nginx: key values mismatch — несовпадение сертификата и ключа» уточните, какой файл, каталог или запись вызывает отказ, и сравните время её изменения с началом ошибки. Учитывайте версию Nginx и условия сбоя. | Для случая «Nginx: key values mismatch — несовпадение сертификата и ключа» исправляйте целевой файл или запись и оставляйте исходник на случай отката. Изменения вносите по одному, с возможностью возврата. |
#Пошаговое решение
- Зафиксируйте ошибку и проверьте условияВыполните
sudo nginx -tи запишите путь к сертификату и ключу из строкиkey values mismatch. Не перезапускайте Nginx с непроверенной конфигурацией. Это означает, что открытый сертификат и закрытый ключ не образуют пару, даже если имена файлов выглядят похожими. - Выполните основную проверку и исправлениеУбедитесь, какие файлы реально указаны в
ssl_certificateиssl_certificate_keyнужного блокаserver, учитывая символьные ссылки и возможные старые копии. Не пересылайте приватный ключ в переписке и не размещайте его в публичном каталоге сайта. - Исключите другие подтверждённые причиныСравните открытые ключи, не выводя секрет:
openssl x509 -in /путь/cert.pem -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256иopenssl pkey -in /путь/key.pem -pubout -outform DER | openssl dgst -sha256. Контрольные суммы должны совпасть; если нет, найдите соответствующую пару в резервной копии либо перевыпустите сертификат. - Проверьте, действительно ли проблема решенаПеред заменой сохраните рабочие пути и права, затем укажите корректную пару и полный комплект промежуточных сертификатов, если он требуется. Проверьте
sudo nginx -t, применитеsudo systemctl reload nginxи с другого компьютера откройте домен по HTTPS. Убедитесь в нужном домене, сроке действия и отсутствии предупреждений TLS.
#Что важно перед исправлением
Не отправляйте закрытый ключ в интернет-сервисы проверки. При утрате ключа потребуется новый сертификат, а не попытка подобрать старый.