我在工作中设置了一个 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_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 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