У меня есть сервер 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: none
В 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