Firefox сообщает SEC_ERROR_CA_CERT_INVALID после изменения сертификата веб-сайта

921
user149408

У меня есть сервер, работающий во внутренней сети. Для поддержки SSL я настроил внутренний CA (используя OpenSSL) и выпустил сертификат для сервера. Цепочка сертификатов выглядит следующим образом:

Example Root CA V1 +-- server.example.com 

Я установил сертификат сервера на сервер и импортировал корневой сертификат в Firefox, и до сих пор это работало.

Поскольку срок действия корневого сертификата истекает, я решил создать совершенно новый ЦС с более глубокой иерархией:

Example Root CA V2 +-- Example Signing CA V2 +-- server.example.com 

Я также создал сертификат пользователя, подписанный подписывающим центром сертификации.

Затем я добавил сертификат пользователя в Firefox. Новый корневой ЦС отображается в разделе «Полномочия», а промежуточный сертификат (подписывающий ЦС) - в разделе «Прочие». Для корневого сертификата я установил все три галочки в Редактировать доверие.

Далее я обновил сертификат на сервере. Когда я сейчас пытаюсь подключиться к серверу, Firefox жалуется, что соединение небезопасно:

server.example.com uses an invalid security certificate. The certificate is not trusted because it was issued by an invalid CA certificate. Error code: SEC_ERROR_CA_CERT_INVALID 

Нажатие на код ошибки дает мне:

https://server.example.com/  Issuer certificate is invalid.  HTTP Strict Transport Security: true HTTP Public Key Pinning: false  Certificate chain:  

за ним следуют серверный сертификат, промежуточный сертификат CA и корневой сертификат CA.

Сервер запускает ownCloud и Webmin; до сих пор я только заменил сертификат Webmin. Firefox - это версия 50.1.0.

Что здесь не так?

0

1 ответ на вопрос

0
user149408

Решил это. Очевидно SEC_ERROR_CA_CERT_INVALID, это признак того, что один из сертификатов в цепочке не одобрен / доверен для цели, для которой он используется.

Изучив свои сертификаты, я обнаружил, что мой промежуточный сертификат CA не был сертификатом CA согласно его расширениям x509_v3. Я восстановил промежуточный сертификат со следующими настройками:

X509v3 extensions: X509v3 Extended Key Usage: critical TLS Web Server Authentication, TLS Web Client Authentication X509v3 Basic Constraints:  CA:TRUE X509v3 Key Usage:  Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Certificate Sign, CRL Sign 

Затем я снова подписал запрос сертификата сервера с хорошим промежуточным сертификатом и импортировал промежуточный сертификат в Firefox. Теперь промежуточный сертификат отображается под полномочиями, а не под другими.

Единственная задача состояла в том, чтобы заменить сертификат в Webmin, поскольку я фактически заблокировал себя от веб-интерфейса.

  • SSH на сервер
  • sudo vi /etc/webmin/miniserv.conf
  • Изменение ssl=1в ssl=0и сохранить
  • sudo /etc/init.d/webmin restart
  • Войдите в Webmin через обычный HTTP, замените сертификат на хороший, затем выйдите снова.
  • sudo vi /etc/webmin/miniserv.conf
  • Изменение ssl=0обратно ssl=1и сохранить
  • sudo /etc/init.d/webmin restart

Когда я попытался подключиться к моему серверу через HTTPS, это сработало.

Извлеченный урок: при подписании запроса сертификата с помощью OpenSSL нет НИКАКОЙ проверки, чтобы убедиться, что сертификат подписи действительно является сертификатом CA. Все будет работать нормально, и вы не получите сообщение об ошибке или другие признаки того, что что-то не так, пока не попробуете подключиться к серверу.