방금 CentOS 7에서 EPEL을 통해 Git 2.18로 업그레이드했는데 이제 Git이 원격 서버와의 통신과 관련된 작업을 수행할 수 없으며 다음 메시지가 표시됩니다.
fatal: unable to access 'https://my.repo.git/': Peer's certificate has an invalid signature.
등 의 상황 에서 발생합니다 git clone
. git pull
이를 사용하여 동일한 명령을 실행하면 sudo
제대로 작동합니다. 이로 인해 잘못된 파일 권한으로 인해 Git이 필요한 인증서나 자격 증명에 액세스하지 못하는 것 같습니다. 그런데 어디서 확인해야 할지, 어떤 인증서를 확인해야 할지 모르겠습니다. 자세한 정보 표시 모드에서 Git을 실행하면 추가 정보가 표시되지 않습니다.
답변1
주요 문제는 pkcs11.txt
로컬 복사본 ~/.pki/nssdb/
과 시스템 복사본 이라는 두 개의 복사본이 있다는 것입니다 /etc/pki/nssdb/
. Git은 로컬 사용자 버전보다 시스템 버전을 선호합니다. 오랫동안 나는 저장소에 액세스하는 데 필요한 PKCS 정보가 포함된 로컬 버전만 가지고 있었습니다. 어떤 시점에서 새 패키지(아마도 Git 업데이트)가 필요한 PKCS 정보가 없는 이 파일의 시스템 버전을 생성했습니다. 따라서 Git(NSS를 통해)이 pkcs11.txt
.
해결책은 로컬 복사본을 시스템 전체 복사본으로 병합하는 것이었습니다.
이 문제를 해결하는 데 도움이 되는 몇 가지 방법은 다음 환경 변수를 설정하는 것입니다.
GIT_CURL_VERBOSE=1
GIT_TRACE_VERBOSE=2
그리고 이 스레드들은:
https://superuser.com/questions/1091521/centos-7-wont-accept-any-ssl-certificates