Что делать, если сертификат ssl не обновился после перезагрузки nginx
Недавно я столкнулся с забавной проблемой. Получилось так, что у меня никак не обновлялся ssl сертификат после замены файла сертификата на новый и перезагрузки nginx. Подошел к концу год работы сертификата ssl, я его перевыпустил. Потребовалось тупо обновить файлы цепочки сертификатов. Недолго думая я заменил файл сертификатов.
Я проверил конфигурацию nginx командой
1 | nginx -t |
Shell выдал, что ошибок нет. Далее последовало стандартное
1 | service nginx restart |
Nginx остановился и стартовал, судя по выводу этой команды. Но вот браузер упорно показывал, что сертификат стоит старый. Открыв сайт в паре других браузеров, я понял, что проблема сохранилась, но была надежда, что это просто какой-то кэш. Не прокатило. Через неделю в назначенный срок старый сертификат прекратил действие и сайт «встал». Причем это было в выходной день. Так что, можете учиться на моих ошибках и так не делать!
Гугление в интернете подсказало мне, что команда service nginx restart не убивала все процессы nginx, а только их часть и они спокойно висели в памяти, что было видно по команде:
1 | ps -All | grep nginx |
Нужно было полностью остановить nginx, а затем снова запустить его
1 2 | nginx -s quit service nginx start |
После этого в браузере стал загружаться новый сертификат ssl. Вот так все оказалось просто.