У меня есть экземпляр Jira, работающий на сервере Debian, доступ к которому я хочу получить из облачного приложения под названием HockeyApp. Проблема возникает, когда HockeyApp пытается получить доступ к списку проектов Jira (без сбоев). Поэтому я проверил Jira API и нашел метод, который, как я ожидаю, будет вызываться из бэкэнда HockeyApp.

Когда я получаю доступ к API с помощью Chrome по адресу https://jira.company.com/rest/api/latest/project я получаю ожидаемые результаты в виде json. Но когда я пытаюсь вызвать этот API из Postman, curl или httpie, я каждый раз получаю ошибки.

локон говорит мне:

curl: (60) Проблема с сертификатом SSL: не удалось получить сертификат локального эмитента. Подробнее здесь: https://curl.haxx.se/docs/sslcerts.html

curl не смог проверить легитимность сервера и поэтому не смог установить безопасное соединение с ним. Чтобы узнать больше об этой ситуации и о том, как ее исправить, посетите указанную выше веб-страницу.

Поэтому я попытался загрузить последний файл cacert-2018-10-17.pem и повторил попытку. Без удачи. Если я добавлю опцию -k чтобы игнорировать проверку ssl, я получу ожидаемые результаты.

почтальон говорит мне:

Если я отключу проверку SSL в настройках почтальона, я получу ожидаемые результаты. Но сервер не использует самозаверяющий сертификат SSL. Сертификат выглядит так:

Сертификат отлично работает во всех браузерах, других подключенных приложениях, таких как Bitbucket и Confluence.

Как я могу узнать, что вызывает эти проблемы?

1 ответ1

0

После долгих поисков я наконец-то узнал, что стало причиной проблемы.

Я начал изучать сетевой трафик при выполнении вызова REST из cURL с использованием Wireshark, чтобы выяснить, что сертификат действительно плохой - просто Chrome не возражает.

поэтому я проверил сертификат, используя:

openssl s_client -showcerts -connect jira.company.com:443

который отвечает:

Start Time: 1544006181
Timeout   : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)

Наконец, я обнаружил, что сертификат, используемый на моем сервере, не обеспечивает полную цепочку сертификации. Вот почему некоторые клиенты это отрицают.

Я изменил JKS, чтобы он содержал полную цепочку копирования файлов crt в один файл company.com.pem (более подробное описание здесь: https://www.digicert.com/ssl-support/pem-ssl-creation.htm).

-----BEGIN CERTIFICATE----- 
(MyCompany.crt) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Intermediate.crt) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Root.crt) 
-----END CERTIFICATE-----

и создал новый JKS для установки JIRA, используя

openssl pkcs12 -export -in company.com.pem -name tomcat -out jira.p12
keytool -importkeystore -srckeystore jira.p12 -srcstoretype pkcs12 
        -destkeystore jira.jks -deststoretype JKS

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