Arch Linux에서 인증서 기반 투명 프록시를 처리하는 방법은 무엇입니까?

Arch Linux에서 인증서 기반 투명 프록시를 처리하는 방법은 무엇입니까?

직장에 Arch Linux VM이 설정되어 있고 회사에서는 자체 서명된 인증서가 있는 투명(통과) 프록시를 사용하며 인증이 필요합니다. 설치를 시도하는 것과 같은 패키지를 통해 패키지를 설치하려고 할 때마다 pacman다음 오류가 발생합니다.lynx

오류: Mirrors.kernel.org에서 "lynx-2.8.7-6-x86_64.pkg.tar.xz" 파일 검색 실패: SSL 인증서 문제: 인증서 체인의 자체 서명 인증서

에서 정의한 모든 이미지에 대해 이 오류가 발생합니다 /etc/pacman.d/mirrorlist. 다른 HTTP/S 클라이언트(예를 들어)를 사용하려고 할 때 비슷한 문제가 있지만 curlFTP에는 아무런 문제가 없습니다(주로 우리 회사에서는 포트 80과 443만 모니터링하기 때문입니다).

내가 시도한 것은 ...

  • 회사의 자체 서명된 CA 인증서를 에 /usr/share/ca-certificates넣고/etc/ca-certificates
  • 내 자격 증명으로 설정 http_proxy하고 https_proxy회사의 프록시 서버를 가리킵니다.
  • 프록시 서버를 관리하는 사람과 이야기를 나눴지만 그는 Linux에 대해 아무것도 모르기 때문에 어디서부터 시작해야 할지 모릅니다.

현재 저는 무언가를 설치하거나 인터넷에 접속해야 할 때 이 문제를 해결하기 위해 홈 서버에 대한 SSH 터널을 엽니다.

아래는 출력입니다openssl s_client -CApath /etc/ca-certificates -showcerts -connect mirrors.kernel.org:443

연결됨(00000003)
깊이 = 0 C = 미국, ST = 캘리포니아, L = 산호세, O = Linux 커널 조직, CN = *.kernel.org
유효성 검사 오류: num=20: 로컬 발급자 인증서를 얻을 수 없습니다.
검증 반환: 1
깊이 = 0 C = 미국, ST = 캘리포니아, L = 산호세, O = Linux 커널 조직, CN = *.kernel.org
유효성 검사 오류: num=27: 인증서를 신뢰할 수 없습니다.
검증 반환: 1
깊이 = 0 C = 미국, ST = 캘리포니아, L = 산호세, O = Linux 커널 조직, CN = *.kernel.org
유효성 검사 오류: num=21: 첫 번째 인증서를 확인할 수 없습니다.
검증 반환: 1
---
인증서 체인
 0 초:/C=US/ST=California/L=San Jose/O=Linux 커널 조직/CN=*.kernel.org
   i:/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[이메일 보호됨]
-----인증서 시작----
...ㅋㅋㅋㅋㅋㅋㅋ
-----인증서 끝----
---
서버 인증서
제목=/C=US/ST=캘리포니아/L=산호세/O=Linux 커널 조직/CN=*.kernel.org
발급자=/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[이메일 보호됨]
---
클라이언트 인증서 CA 이름이 전송되지 않았습니다.
---

노트간단히 FTP 미러링을 사용해 볼 수도 있겠지만 다른 HTTP/S 애플리케이션(예: )의 문제는 실제로 해결되지 않습니다 curl.

답변1

제공하신 정보에 따르면 서버 인증서를 /etc/ca-certificates파일에 추가한 것으로 보입니다. CA 인증서를 추가해야 합니다.

실행하는 명령에는 openssl s_client -showcerts첫 번째 인증서 뒤에 하나 이상의 추가 인증서가 포함되어야 합니다. 이들은 당신이 관심을 갖고 있는 사람들입니다.
첫 번째 인증서 이후에 여러 인증서가 있는 경우 두 인증서를 모두 파일에 추가해야 할 수도 있습니다 ca-certificates. 이는 모두 프록시에 인증 기관이 설정되는 방식에 따라 다릅니다. 그러나 둘 중 어느 것도 필요하지 않고 어쨌든 둘 다 추가하면 아무런 해가 없습니다.

그러나 openssl s_client -showcerts첫 번째 인증서 외에 인증서가 표시되지 않으면 문제가 발생합니다. 이는 프록시가 서명 인증서를 보내지 않았음을 의미합니다. 네트워크 팀에 연락하여 문의해 보세요. 보안 관점에서 볼 때, 그들이 귀하에게 이를 제공하지 않을 이유가 전혀 없습니다(이는열쇠보호해야 합니다.)


예를 들어 다음과 같은 결과를 얻습니다(예, SSL 프록시 뒤에 있지 않기 때문에 실제 인증서를 얻지만 개념은 그대로 유지됩니다).

# openssl s_client -showcerts -connectmirrors.kernel.org:443
연결됨(00000003)
깊이=2 C=US, O="thawte, Inc.", OU=인증 서비스, OU="(c) 2006 thawte, Inc. - 허가된 사용 전용", CN=thawte 기본 루트 CA
유효성 검사 오류: num=20: 로컬 발급자 인증서를 얻을 수 없습니다.
검증 반환: 0
---
인증서 체인
 0 초:/C=US/ST=California/L=San Jose/O=Linux 커널 조직/CN=*.kernel.org
   i:/C=US/O=Thawte, Inc./CN=Thawte SSL CA
-----인증서 시작----
MIID2zCCAsOgAwIBAgIQZ7xPhWo7v0ZlPnI5mJWMazANBgkqhkiG9w0BAQUFADA8
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMuMRYwFAYDVQQDEw1U
aGF3dGUGU1NMIENBMB4XDTEyMDEwMzAwMDAwMFOXDTE0MDQwMzIzNTk1OVowdDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcuCFNhbiBK
b3NLMSYwJAYDVQQKFB1UaGUgTGludXggS2VybmVsIE9yZ2FuaXphdGlvbjEVMBMG
A1UEAxQMKi5rZXJuZWwub3JnMIIBijANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEApSbajGUzM+C1Oz6CzyPmek9HH03ToicZeHxOlBfS7yyvIyybxTCBrmkItyc+
sf6b5g2Zf8IPwloaj+ACQaLfm0OOaFrvHERIN1t0pitvmeSDI6BXVYq0eSLEPpSG
YC/3AMdKE21NO1jmL7mtsCB8CW4NAAvy97HkvsPsTPNOp6d/LtcIMYRS347RFgRj
O/J1PU05EEjcpXdy6eCyJLwi2AFLgfBzjS+0UK4tq01HFalULfO/akjC59WG+qrc
P/Yi/1TM8bE2mun1mcuCP7bmyZFDfrGnO2TYcZ/s7z4bTUmEixR6kTdj1foqi7Xk
svko9dXCiUZj4c692ZKZXE+gJwIDAQABo4GgMIGdMAwGA1UdEweb/wQCMAAwOgYD
VR0fBDMwMTAvoC2gK4YpaHR0cDovL3N2ci1vdi1jcmwudGhhd3RlLmNvbS9UaGF3
dGVPVi5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDIGCCsGAQUF
BwEBBCYwJDAiBggrBgEFBQcwaAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTANBgkq
HKIG9w0BAQUFAAOCAQEAd7mKHpW1mCB1fGuvR44iX83PmSy3BVEpvOlnH1zNSU/Y
2zMmKDbXqAJTY6t20Yq/GpjW3BA2G4xEA6i64WAGZcSmXfc/NDOSh0i5lTrCofCG
3tuts9HTmHJLfeAz9cZiT4rc4ROMV4K17/Uw81UIid952M/4b6OvhaCu5OSnvDUI
3Z6OUy+AuJHbwEyB5bGOJ/mqVKUztgUK17bJiwDhwZ4Q8PT6YKUj5NgPcG6cUKxY
HK6yxvoqH/s1DQJB3JHDSFVgY47ECmoHyQ5MvJN+naNrZJUIH0RTmmHNbQH772W7
m8I66jiDhXTd6+4v8DipvHJOSEv7ebG0Jf6gv7lc6w==
-----인증서 끝----
 1초:/C=US/O=Thawte, Inc./CN=Thawte SSL CA
   i:/C=US/O=thawte, Inc./OU=인증 서비스 부서/OU=(c) 2006 thawte, Inc. - 승인된 용도로만 사용/CN=thawte 기본 루트 CA
-----인증서 시작----
MIIEbDCCA1SgAwiBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMPIDIw
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzeEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIJANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
WJAFGrfFwQalgK+7HulrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX
7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY
XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBweb
BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UDDweb/wQEAwIBBjAoBgNVHREEITAfpB0w
GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
1TBPERk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
KoZIhvcNAQEFBQADggEBAIIGOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en
S+UV+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
-----인증서 끝----
 2초:/C=US/O=thawte, Inc./OU=인증 서비스 부서/OU=(c) 2006 thawte, Inc. - 승인된 사용 전용/CN=thawte 기본 루트 CA
   i:/C=ZA/ST=웨스턴 케이프/L=케이프 타운/O=Thawte 컨설팅 cc/OU=인증 서비스/CN=Thawte Premium Server CA/[이메일 보호됨]
-----인증서 시작----
MIIERTCCA66gAwiBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUGQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFOXDTIwMTIzMDIzNTk1OVow
gakxCzAJBgNVBAYTALVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAST
H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIJANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESULI0CYm/rWT0RjSiaXISQEHON
vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
KWn7OUkmHgmlgHtalevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEweb
/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
Oi8vd3d3LnRoYXd0ZS5jb20vY3BzMA4GA1UdDweb/wQEAwiBBjAdBgNVHQ4EFgQU
e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
BC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
-----인증서 끝----
---
서버 인증서
제목=/C=US/ST=캘리포니아/L=산호세/O=Linux 커널 조직/CN=*.kernel.org
발급자=/C=US/O=Thawte, Inc./CN=Thawte SSL CA
---
클라이언트 인증서 CA 이름이 전송되지 않았습니다.
---
SSL 핸드셰이크는 3566바이트를 읽고 636바이트를 썼습니다.
---
새로운 기능인 TLSv1/SSLv3, 암호는 RC4-SHA입니다.
서버 공개 키는 2048비트입니다.
안전한 재협상 지원
압축: 없음
확장: 없음
SSL 세션:
    프로토콜: TLSv1
    비밀번호: RC4-SHA
    세션 ID: EAB5C93513AA8829036C7BB9E3F74D99076C8A339EB220832F76DF73D52D0B22
    세션 ID-ctx:
    마스터 키: 0A599E2D1CCAA8249E50871FDF03A2137BA034BCB20FA691D1413822BE08E15303CB0F59CDEC0376D670E08632EF0D46
    주요 매개변수: 없음
    PSK ID: 없음
    PSK 신원 알림: 없음
    SRP 사용자 이름: 없음
    TLS 세션 티켓:
    0000 - ac 28 d2 81 da 5e b9 7f-43 52 ab e8 2c b0 ac 1d .(...^..CR..,...
    0010 - c0 27 92 cb 5e 0e 1e 36-e4 77 34 bf 34 f8 cb 2f .'..^..6.w4.4../
    0020 - 04 af 1a 9b ea b3 9e 6f-32 44 4b ce d1 b4 2b 42 .......o2DK...+B
    0030 - 55 a8 e3 ec 9a 6a 76 5d-c0 84 e0 aa 20 29 ae ac U....jv].... )..
    0040 - 7d 45 2b 3b 56 3c 2e 4b-d3 69 60 c8 fb 67 36 07 }E+;V...;.]p.....
    00a0 - de 09 7d bf 3f b9 2c 9c-af 5d b1 af b2 9b bc 7a ..}.?.,..].....z
    00b0 - 5e b3 92 26 02 3a 0e 47-c9 4b 10 6c 5b f4 2f c3 ^..&.:.GKl[./.

    시작 시간: 1380663897
    시간 초과: 300(초)
    확인 반환 코드: 20(로컬 발급자 인증서를 얻을 수 없음)
---

인증서 2(마지막 인증서)를 추가하겠습니다. 인증서 1은 체인 인증서이고 인증서 2에 의해 체인 인증서로 인증되므로 인증서가 필요하지 않습니다. 하지만 인증서 1을 추가해도 괜찮습니다.

답변2

누군가에게 도움이된다면 비슷한 문제가 있었지만 해결책이 약간 달랐습니다. 내 회사 프록시는 중간 자체 서명 인증서를 사용합니다. 이는 내 가상 머신의 명령줄 프로그램뿐만 아니라 브라우저에서도 분명하게 나타납니다. 브라우저에서 외부 사이트(Chromiumim)로 이동하면 해당 사이트가 중간 자체 서명 인증서를 사용하고 있기 때문에 신뢰할 수 없다는 메시지가 표시됩니다. URL 표시줄의 자물쇠 아이콘 영역을 클릭하면 중간 인증서를 다운로드할 수 있습니다. 그런 다음 아래 지침을 따랐습니다. 수정 사항은 명령줄 프로그램과 브라우저 모두에 전역적으로 적용됩니다.

https://wiki.archlinux.org/title/User:Grawity/Adding_a_trusted_CA_certificate

관련 정보