Назад | Перейти на главную страницу

Git: проверка сертификата сервера не удалась с использованием Bitbucket Server

У меня есть сервер Bitbucket, работающий onprem с сертификатом. Я добавил его в хранилище ключей, используя следующие команды

openssl pkcs12 -export -in myurl.com.cer -inkey myurl.com.key -out myurl.com.p12
keytool -importkeystore -srckeystore myurl.com.p12 -srcstoretype PKCS12 -destkeystore bitbucket.jks -deststoretype JKS

Это выглядит так, если я просматриваю сервер в Chrome (что выглядит хорошо):

Когда я пытаюсь клонировать репозиторий с сервера, я получаю следующую ошибку

root@BS01:~# git clone https://source.server.com/scm/p/project.git
Cloning into 'project'...

фатальный: невозможно получить доступ 'https://source.server.com/scm/p/project.git': проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: нет

В Windows ошибка выглядит немного иначе:

фатальный: невозможно получить доступ 'https://source.server.com/scm/p/project.git/': Проблема с сертификатом SSL: невозможно получить сертификат местного эмитента

Когда я искал эту ошибку в Google, многие решения предполагают, что мне нужно использовать сертификат CA вместо самоподписанного (возможно, я ошибся в концепции, но я думал, что сертификат является сертификатом CA) или полностью отключить sslVerificaction (что неприемлемо ) Какая проблема у git с сертификатом и как это исправить?

На самом деле сертификат подходит только для моего компьютера, мобильные устройства не доверяют ему - если я объединю всю цепочку доверия в один файл .pem, который выглядит следующим образом:

-----BEGIN RSA PRIVATE KEY----- 
KEY FROM domain.key
-----END RSA PRIVATE KEY----- 
-----BEGIN CERTIFICATE----- 
domain.crt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
Intermediate.crt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
Root.crt
-----END CERTIFICATE-----

И добавьте этот в jks, он работает как положено.

openssl pkcs12 -export -in server.pem \
    -out server.p12 -name  tomcat
keytool -importkeystore -srckeystore server.p12 \
    -srcstoretype pkcs12 -destkeystore bitbucket.jks -deststoretype JKS