Для нашей корпоративной сети мы используем внутренний центр сертификации, который напрямую подписывает некоторые сертификаты сервера внутренней сети. Теперь срок действия корневого сертификата истекает. Я попытался обновить его с помощью следующей команды 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?