Не запускается веб-интерфейс из-за битого сертификата /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 это умеют.


 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy