Ответ
Клиентские SSL/TLS сертификаты — это один из способов аутентификации при работе с удаленными Git-репозиториями по протоколу HTTPS. Вместо пароля или токена, Git-клиент предоставляет серверу свой персональный сертификат для подтверждения личности.
Этот метод часто используется в корпоративных средах со строгими политиками безопасности.
Как это работает:
- Сервер (например, корпоративный GitLab) настраивается так, чтобы запрашивать клиентский сертификат при TLS-рукопожатии.
- Клиент (ваш компьютер) при выполнении
git push
илиgit pull
предоставляет свой сертификат и приватный ключ. - Сервер проверяет, что сертификат подписан доверенным удостоверяющим центром (CA), и предоставляет доступ.
Настройка на стороне клиента:
Нужно указать Git, где находятся ваш сертификат и приватный ключ, с помощью глобальных настроек:
# Путь к вашему клиентскому сертификату в формате PEM
git config --global http.sslCert ~/.ssl/my-cert.pem
# Путь к вашему приватному ключу
git config --global http.sslKey ~/.ssl/my-key.key
Ключевые моменты:
- Альтернатива: Это альтернатива аутентификации по SSH-ключам, логину/паролю или персональным токенам доступа (PAT).
- Корпоративное использование: Редко встречается на публичных сервисах вроде GitHub, которые предпочитают SSH-ключи и токены.
- Формат: Сертификат и ключ обычно должны быть в формате PEM.
- Защита ключа: Приватный ключ не должен быть защищен паролем, иначе Git будет запрашивать его при каждой операции.