не удалось проверить сертификат сервера. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: нет после перехода на https - PullRequest
0 голосов
/ 27 мая 2020

Я использовал s sh для подключения моего git репозитория, но мне нужно было перейти на https. И теперь, когда я пытаюсь:

git pull --rebase origin develop

, я получаю:

проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Я зашел в /etc/ssl/certs/ca-certificates.crt и переименовал этот файл, но не работал, поэтому оставил как есть.

Вот что я сделал:

git remote set-url origin https://<my_username>@<my_git_repository>.git

а затем

git remote -v

Он вернул:

origin  https://<my_username>@<my_git_repository>.git (fetch)
origin  https://<my_username>@<my_git_repository>.git (push)

Я использую Linux Mint 19.3, и я не могу решить эту проблему. Как мне действовать, чтобы решить эту проблему?

1 Ответ

2 голосов
/ 27 мая 2020

Это сообщение означает, что сервер, к которому вы подключаетесь, не имеет действующего сертификата TLS, и поэтому безопасное соединение не может быть установлено. Файл, указанный в системном хранилище сертификатов доверенных сертификатов, который печатается Git, чтобы помочь вам определить, чему доверяют. Вы не должны изменять его, переименовывать или удалять, потому что это может нарушить всю проверку TLS в вашей системе.

В идеале ваш друг должен использовать действующий сертификат TLS, и в этом случае все должно работать. Let's Encrypt предоставляет бесплатные сертификаты, и есть простой в использовании инструмент под названием certbot, который может запрашивать и устанавливать их автоматически. Попросить друга безопасно настроить свой сервер - лучший способ go здесь.

Если по какой-то причине это невозможно, вы можете попросить своего друга предоставить сертификат, который он использует в формате PEM, и сохранить это в файле, а затем установите http.sslCAInfo на это имя файла. Это тоже безопасно, но немного хлопотно. Вы также можете попытаться извлечь сертификат, используя openssl s_client для подключения к серверу, и использовать распечатанный там сертификат в качестве источника для http.sslCAInfo, но у вас нет гарантии, что кто-то не перехватит ваше соединение и не подставит ложный сертификат. .

Можно отключить проверку сертификата TLS, установив http.sslVerify на false, но это означает, что ваши данные полностью небезопасны и могут быть изменены, удалены, уничтожены и прочитаны любым достаточно определенным party на Inte rnet. Это не лучше, чем использование обычного HTTP, и должно быть последним средством, поскольку это плохая практика безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...