如何在 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 用戶端(例如 )時也遇到類似問題curl,但我對 FTP 沒有任何問題(主要是因為我的公司只監控連接埠 80 和 443)。

我已經嘗試過的...

  • 將我公司的自簽名 CA 憑證放入/usr/share/ca-certificates,以及/etc/ca-certificates
  • 使用我的憑證設定http_proxyhttps_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 s:/C=US/ST=加州/L=聖荷西/O=Linux 核心組織/CN=*.kernel.org
   i:/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[電子郵件受保護]
-----開始憑證-----
.... 等等等等等等
-----證書結束-----
---
伺服器憑證
subject=/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 s:/C=US/ST=加州/L=聖荷西/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 s:/C=US/O=Thawte, Inc./CN=Thawte SSL CA
   i:/C=US/O=thawte, Inc./OU=Certification Services Division/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 s:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - 僅供授權使用/CN=thawte 主根 CA
   i:/C=ZA/ST=西開普省/L=開普敦/O=Thawte Consulting 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=
-----證書結束-----
---
伺服器憑證
subject=/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 身分:無
    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 授權為鏈證書。

答案2

如果它對任何人有幫助,我也遇到類似的問題,但解決方法略有不同。我的公司代理使用中間自簽名憑證。這不僅在我的虛擬機器中的命令列程式中很明顯,而且在瀏覽器中也很明顯。透過在瀏覽器中導航到外部網站(Chromiumim),我看到了不受信任的訊息,因為該網站正在使用中間自簽名憑證。點擊 URL 欄中的鎖定圖示區域,我可以下載中間憑證。然後我就按照以下說明進行操作。此修復全域適用於命令列程式和瀏覽器等。

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

相關內容