간단히:
- 자체 서명 된 인증서 받기
- 그것을 (예를 들어
~/git-certs/cert.pem
) 파일에 넣으십시오
- 매개 변수를
git
사용하여이 인증서를 신뢰하도록 설정http.sslCAInfo
자세한 내용은 :
원격 서버의 자체 서명 된 인증서 받기
서버 URL이 repos.sample.com
있고 port를 통해 액세스하려고 한다고 가정하십시오 443
.
얻는 방법에는 여러 가지 옵션이 있습니다.
openssl을 사용하여 인증서 받기
$ openssl s_client -connect repos.sample.com:443
파일로 출력을 잡아 cert.pem
와 (포함 등)을 제외한 모든 부분 사이를 삭제 -BEGIN CERTIFICATE-
하고-END CERTIFICATE-
결과 파일 ~ / git-certs / cert.pem의 내용은 다음과 같습니다.
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
EwYDVQQIEwxMb3dlciBTYXhvbnkxEjAQBgNVBAcTCVdvbGZzYnVyZzEYMBYGA1UE
ChMPU2FhUy1TZWN1cmUuY29tMRowGAYDVQQDFBEqLnNhYXMtc2VjdXJlLmNvbTEj
MCEGCSqGSIb3DQEJARYUaW5mb0BzYWFzLXNlY3VyZS5jb20wHhcNMTIwNzAyMTMw
OTA0WhcNMTMwNzAyMTMwOTA0WjCBkzELMAkGA1UEBhMCREUxFTATBgNVBAgTDExv
d2VyIFNheG9ueTESMBAGA1UEBxMJV29sZnNidXJnMRgwFgYDVQQKEw9TYWFTLVNl
Y3VyZS5jb20xGjAYBgNVBAMUESouc2Fhcy1zZWN1cmUuY29tMSMwIQYJKoZIhvcN
AQkBFhRpbmZvQHNhYXMtc2VjdXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMUZ472W3EVFYGSHTgFV0LR2YVE1U//sZimhCKGFBhH3ZfGwqtu7
mzOhlCQef9nqGxgH+U5DG43B6MxDzhoP7R8e1GLbNH3xVqMHqEdcek8jtiJvfj2a
pRSkFTCVJ9i0GYFOQfQYV6RJ4vAunQioiw07OmsxL6C5l3K/r+qJTlStpPK5dv4z
Sy+jmAcQMaIcWv8wgBAxdzo8UVwIL63gLlBz7WfSB2Ti5XBbse/83wyNa5bPJPf1
U+7uLSofz+dehHtgtKfHD8XpPoQBt0Y9ExbLN1ysdR9XfsNfBI5K6Uokq/tVDxNi
SHM4/7uKNo/4b7OP24hvCeXW8oRyRzpyDxMCAwEAATANBgkqhkiG9w0BAQUFAAOC
AQEAp7S/E1ZGCey5Oyn3qwP4q+geQqOhRtaPqdH6ABnqUYHcGYB77GcStQxnqnOZ
MJwIaIZqlz+59taB6U2lG30u3cZ1FITuz+fWXdfELKPWPjDoHkwumkz3zcCVrrtI
ktRzk7AeazHcLEwkUjB5Rm75N9+dOo6Ay89JCcPKb+tNqOszY10y6U3kX3uiSzrJ
ejSq/tRyvMFT1FlJ8tKoZBWbkThevMhx7jk5qsoCpLPmPoYCEoLEtpMYiQnDZgUc
TNoL1GjoDrjgmSen4QN5QZEGTOe/dsv1sGxWC+Tv/VwUl2GqVtKPZdKtGFqI8TLn
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
웹 브라우저를 사용하여 인증서 받기
Git 리포지토리와 함께 Redmine을 사용하고 웹 UI 및 git 명령 줄 액세스를 위해 동일한 URL에 액세스합니다. 이렇게하면 해당 도메인에 대한 예외를 웹 브라우저에 추가해야했습니다.
Firefox를 사용하여에 가서 자체 Options -> Advanced -> Certificates -> View Certificates -> Servers
서명 된 호스트를 발견하고 그것을 선택했으며 Export
버튼을 사용하여을 사용하여 만든 것과 정확히 동일한 파일을 얻었습니다 openssl
.
참고 : 나는 조금 놀랐습니다. 눈에 띄게 언급 된 권위의 이름은 없습니다. 이건 괜찮아.
전용 파일에 신뢰할 수있는 인증서 보유
이전 단계에서는 일부 파일에 인증서가 있어야합니다. 해당 도메인에 액세스 할 때 자식이 볼 수있는 한 파일은 중요하지 않습니다. 나는 사용했다~/git-certs/cert.pem
참고 :보다 신뢰할 수있는 자체 서명 된 인증서가 필요한 경우 동일한 파일에 넣으십시오.
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
AnOtHeRtRuStEdCeRtIfIcAtEgOeShErExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
이것은 작동하지만 (단일 인증서로만 테스트했습니다).
이 인증서를 신뢰하도록 git 구성
$ git config --global http.sslCAInfo /home/javl/git-certs/cert.pem
--system
대신을 사용하여 해당 시스템 전체를 시도 할 수도 있습니다 --global
.
그리고 그것을 테스트하십시오 : 이제 다음에 의존하지 않고 서버와 통신 할 수 있습니다 :
$ git config --global http.sslVerify false #NO NEED TO USE THIS
git을 ssl 인증서를 무시하도록 이미 설정 한 경우 설정을 해제하십시오.
$ git config --global --unset http.sslVerify
또한 철자 오류없이 올바르게 수행했는지 확인할 수도 있습니다.
$ git config --global --list
모든 변수를 나열해야 할 것은 전체적으로 설정 한 것입니다. (http를 htt로 잘못 입력했습니다).