Не запускается веб-интерфейс из-за битого сертификата /var/etc/cert.crt
-
Всем привет. Анамнез такой:
Обновился с версии 2.4.3-RELEASE (amd64) до 2.4.3_1 . И после этого решилось мне обновить сертификат через LetsEncrypt через сервис ACME. Все шло хорошо, до момента как я нажал кнопку renew и тут обвалился веб интерфейс. Я думал сам pfsense лег, но нет, он функционирует как и раньше. Заглянув в логи nginx увидел увидел:[emerg] 98770#100197: PEM_read_bio_X509_AUX("/var/etc/cert.crt") failed (SSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:Type=X509 error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib)
Интернет сказал, что это у меня сертификат побился и сказал проверить так: openssl x509 -text -noout -in cert.crt
И получил я:unable to load certificate
34380776392:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:/builder/ce-243/tmp/FreeBSD-src/crypto/openssl/crypto/asn1/tasn_dec.c:1200:34380776392:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:/builder/ce-243/tmp/FreeBSD-src/crypto/openssl/crypto/asn1/tasn_dec.c:374:Type=X509
34380776392:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:/builder/ce-243/tmp/FreeBSD-src/crypto/openssl/crypto/pem/pem_oth.c:83:
Своим умом подумал - пересоздам сертификат и подсуну в nginx-webconfigurator.conf. Не сработал план, ключи создаются так же битыми. Создал на другой машине, проверил - не битые, сунул в pfsense, перезапустил nginx и они снова стали битые.
В общем я уже отчаялся найти решение и думаю, что мне и так не нравился этот сервер - пересоберу его по-новой. Но проблема достаточно интересная и хотелось бы ее решить. В чем и прошу вашей помощи - подайте идею куда копать.
-
Проблема решена. А в чем она была?
Мой шлюз был запитан от сертификата, полученного от ACME. Когда в очередной раз проводилось обновление сертификата - чтото пошло не так и сертификат крашнулся. Проще всего отключить https и дальше через веб интерфейс уже менять что нужно. Но поменяв настройки nginx, /cf/config/config.xml - webconfigurator все равно падал с ошибкой на битый сертификат /var/etc/cert.crt .
Решение: не морочить себе голову и переназначить IP интерфейсу LAN, во время настройки LAN у вас спросит что то типа: выключить http редирект на ssl? Жмете Y и WEbConfigurator переходит на протокол http:// Дальше уже понятно, что нужно пересоздать сертификат и переназначить для https уже нормальный сертификат. -
@n-lopyrev said in Не запускается веб-интерфейс из-за битого сертификата /var/etc/cert.crt:
Решение: не морочить себе голову и переназначить IP интерфейсу LAN, во время настройки LAN у вас спросит что то типа: выключить http редирект на ssl?
Спасибо за публикацию решения.
-
Добрый.
@n-lopyrev
Спасибо за решение. Плюсанул.P.s. В 1000-ый раз убеждаюсь, какая же классная штука - виртуализация. Как раз для таких вот случаев. Сделал снимок и\или бэкап и вперед. Что-то не так - просто откатился за минуту-две.
-
@werter Да, виртуализация это хорошо. Но чаще всего разворачивают pfsense на физической машине.
Если же шлюз все же физическийи и если есть возможность - можно сделать кластер по CARP интерфейсу из двух шлюзов. Это дает и запасной план, в случае краша основного, и в тоже время можно тестировать на втором, например, обновление системы или пакетов.
Само железо для шлюзов обычно выделяется не очень мощное, потому заиметь физический кластер не накладно. -
В обоих решениях есть и плюсы и минусы. Лично мне виртуализация кажется лучше. Убедился на личном опыте.
Само железо для шлюзов обычно выделяется не очень мощное
Крайне желательна поддержка AES-NI инс-ций на CPU шлюза. Далеко не все CPU это умеют.