Итак, у нас есть собственная версия Atlassian BitBucket, работающая на сервере Ubuntu, которая содержит хранилище кода. Мы используем SSL-сертификат от DigiCert. Каждый год мы обновляем сертификат, который никогда не вызывал проблем. Однако в этот раз большинство разработчиков получают следующую ошибку при извлечении и извлечении кода из GIT после обновления сертификата.

Неустранимый: невозможно получить доступ: проблема с сертификатом SSL: невозможно получить сертификат локального эмитента

Все поисковые запросы в Интернете указывают на эту ошибку, когда вы используете самозаверяющий или внутренний сертификат PKI. Мы полностью озадачены тем, почему сертификат, выданный государственным органом, таким как DigiCert, получает эту ошибку. Любая помощь по этому вопросу будет принята с благодарностью.

1 ответ1

1

Публичные центры сертификации не выдают сертификаты непосредственно из своего корня, а вместо этого через промежуточный сертификат (по соображениям безопасности и административным причинам).

Без промежуточных соединений невозможно установить связь между вашим сертификатом и DigiCert. Это означает, что для проверки сертификата вашего сервера недостаточно просто доверять корню DigiCert - клиенты также должны получить всех промежуточных эмитентов в цепочке.

Веб-браузеры могут делать это различными способами: они могут извлекать сертификаты из URL-адреса AIA, хранящегося в сертификате вашего сервера, и они могут кэшировать промежуточных издателей, замеченных ранее, поэтому различные неполные конфигурации, кажется, работают "нормально" при посещении через браузер.

Но базовые TLS-клиенты не так гибки (я имею в виду, что они не могут делать никаких дополнительных HTTP-запросов и не ожидают, что у них будет доступный для записи кэш), и поэтому промежуточные сертификаты должны предоставляться самим TLS-сервером.

  • Если веб-сервер принимает один файл PEM (.crt), то к этому файлу должны быть добавлены правильные промежуточные сертификаты.

    Если DigiCert отправил вам ZIP-файл с сертификатом по электронной почте, один из включенных файлов является промежуточным сертификатом, и вы можете объединить оба файла с помощью cat или текстового редактора. (Серверный сертификат всегда идет первым, затем его прямой издатель и т.д. Root будет идти в конце, но это избыточно, поэтому не включайте его.)

  • Если веб-серверу нужен файл PKCS # 12, и вы создали этот файл с openssl export , то повторно экспортируйте его и укажите промежуточные соединения, используя опцию OpenSSL -CAfile . (В качестве альтернативы вместо этого укажите объединенный .crt как -cert .)

  • Если веб-сервер использует хранилище ключей Java, keytool -importcert может работать? (Последние версии Java поддерживают и действительно предпочитают напрямую использовать файлы PKCS # 12 в качестве хранилищ ключей, так что это может быть избыточно. Честно говоря, я понятия не имею.)

Проверьте свою конфигурацию, используя SSL-Tools или Qualys SSL Labs. Просто открытие сайта с помощью веб-браузера не является хорошим тестом, из-за того, что я уже упоминал.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .