Для нашей корпоративной сети мы используем внутренний центр сертификации, который напрямую подписывает некоторые сертификаты сервера внутренней сети. Срок действия корневого сертификата скоро истечет. Я попытался обновить его с помощью следующей команды OpenSSL:
openssl req -new -x509 -days 123 -key root.key -out root.crt
Я удалил старый сертификат со своего ПК и установил новый. Windows / IE, Chrome и Opera, похоже, не возражают против этого, но Firefox не принимает его. Попытка получить доступ к серверу интрасети дает мне ошибку sec_error_unknown_issuer
, в которой говорится, что цепочка не предоставляется. Я погуглил до мозга костей, но единственный ответ, который я смог найти, заключался в том, что промежуточный сертификат отсутствует в конфигурации сервера. Но в моем случае промежуточного ЦС нет !! Почему Firefox не может связать сертификат сервера с новым корнем? Похоже, что все остальные браузеры могут это делать, и даже openssl verify
говорит, что все в порядке. Есть идеи?
Я понял! Проблема заключалась в моем openssl.cnf
. Старый сертификат был создан с помощью string_mask = utf8only
. Эта строка отсутствовала в моем текущем файле, что привело к значению по умолчанию PrintableString, T61String, BMPString
. Я не использовал символы, отличные от ASCII, но, похоже, этого было достаточно, чтобы раздражать Firefox.
Я удалил старый сертификат со своего компьютера и установил новый.
Firefox использует собственное отдельное хранилище сертификатов . Рискуя заявить очевидное (для тех из нас, кто регулярно использует Firefox), вы добавили новый сертификат CA в сам Firefox?