Недостаточно информации для определения вашей проблемы.
Я делаю следующие предположения:
- Вы отправили запрос на сертификат (CSR) поставщику CA и получили сертификат обратно.
- Вы настраиваете какой-то веб-сервер с этим сертификатом
- Я также предполагаю, что вы использовали веб-браузер "Windows", такой как IE или Chrome, который использует хранилище сертификатов Windows для проверки сертификата.
- CA, подписавший ваш сертификат, является хорошо известным CA, у которого есть корневые сертификаты во всех общих списках CA.
Если вышеприведенное верно и веб-браузер, такой как Firefox (который использует свой внутренний список CA), дает сбой, это связано с тем, что веб-сервер использует сертификат без каких-либо промежуточных сертификатов.
Вам нужно найти промежуточные сертификаты для вашего сертификата, подписанного СА, объединить их в цепочку сертификатов и настроить веб-сервер с этой цепочкой сертификатов. Детали того, как это сделать, будут зависеть от вашего веб-сервера.
Как только веб-сервер настроен с правильной цепочкой сертификатов, ваша команда curl (и firefox) должна работать нормально.
Причина, по которой Windows работает нормально, заключается в том, что Windows хранит список общих промежуточных сертификатов, с которыми он может проверять цепочку сертификатов. Клиент на основе openssl этого не делает, поэтому промежуточные сертификаты должны поступать с сервера сокетов SSL (например, веб-сервера) вниз к клиенту, чтобы иметь возможность проверить цепочку сертификатов до доверенного корневого сертификата в списке CA клиента.