如何在 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 授权为链证书。但是我也可以添加证书 1,这不会有什么坏处。

答案2

如果它对任何人有帮助,我也遇到过类似的问题,但解决方法略有不同。我的公司代理使用中间自签名证书。这不仅在我的虚拟机中的命令行程序中很明显,而且在浏览器中也很明显。通过在浏览器中导航到外部站点(Chromiumim),我看到了不受信任的消息,因为该站点正在使用中间自签名证书。单击 URL 栏中的锁定图标区域,我可以下载中间证书。然后我就按照以下说明进行操作。该修复全局适用于命令行程序和浏览器等。

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

相关内容