Configurei uma VM Arch Linux no trabalho e minha empresa usa um proxy transparente (cut-through) com um certificado autoassinado e requer autenticação. Sempre que tento instalar qualquer pacote, pacman
recebo o seguinte erro (por exemplo, ao tentar instalar lynx
)
erro: falha ao recuperar o arquivo 'lynx-2.8.7-6-x86_64.pkg.tar.xz' de mirrors.kernel.org: problema de certificado SSL: certificado autoassinado na cadeia de certificados
Isso gerará esse erro para cada espelho que defini no arquivo /etc/pacman.d/mirrorlist
. Tenho problemas semelhantes ao tentar usar qualquer outro cliente HTTP/S, como curl
, mas não tenho problemas com FTP (principalmente porque minha empresa monitora apenas as portas 80 e 443).
O que eu já tentei...
- Colocar o certificado CA autoassinado da minha empresa em
/usr/share/ca-certificates
e/etc/ca-certificates
- Configurando
http_proxy
ehttps_proxy
apontando para o servidor proxy da minha empresa com minhas credenciais - Conversei com a pessoa que gerencia nosso servidor proxy, mas ele não sabe nada sobre Linux, então não tem ideia por onde começar.
Por enquanto, quando preciso instalar algo ou acessar a Internet, estou abrindo um túnel SSH no meu servidor doméstico para contornar isso.
Abaixo está a saída deopenssl s_client -CApath /etc/ca-certificates -showcerts -connect mirrors.kernel.org:443
CONECTADO(00000003) profundidade = 0 C = EUA, ST = Califórnia, L = San Jose, O = The Linux Kernel Organization, CN = *.kernel.org verifique o erro:num=20:não foi possível obter o certificado do emissor local verificar retorno:1 profundidade = 0 C = EUA, ST = Califórnia, L = San Jose, O = The Linux Kernel Organization, CN = *.kernel.org verifique o erro:num=27:certificado não confiável verificar retorno:1 profundidade = 0 C = EUA, ST = Califórnia, L = San Jose, O = The Linux Kernel Organization, CN = *.kernel.org verifique erro:num=21:não foi possível verificar o primeiro certificado verificar retorno:1 --- Cadeia de certificados 0 s:/C=US/ST=Califórnia/L=San Jose/O=The Linux Kernel Organization/CN=*.kernel.org i:/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[e-mail protegido] -----INICIAR CERTIFICADO----- ... blá blá blá -----FIM CERTIFICADO----- --- Certificado de servidor subject=/C=US/ST=Califórnia/L=San Jose/O=The Linux Kernel Organization/CN=*.kernel.org emissor=/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[e-mail protegido] --- Nenhum nome de CA de certificado de cliente enviado ---
ObservaçãoEu provavelmente poderia tentar simplesmente usar espelhos FTP, mas isso realmente não resolve o problema para outros aplicativos HTTP/S (por exemplo, curl
).
Responder1
Pelas informações que você forneceu, parece que você adicionou o certificado do servidor ao seu /etc/ca-certificates
arquivo. Você precisa adicionar o certificado CA.
O openssl s_client -showcerts
comando que você executou deveria ter incluído um ou mais certificados após o primeiro. Estes são aqueles com quem você se preocupa.
Se houver mais de um certificado após o primeiro, talvez seja necessário adicionar ambos ao seu ca-certificates
arquivo. Tudo depende de como a autoridade de certificação está configurada no proxy. No entanto, se ambos não forem necessários e você adicionar os dois de qualquer maneira, não fará mal.
No entanto, se o openssl s_client -showcerts
não mostrar nenhum certificado além do primeiro, você estará em apuros. Isso significa que o proxy não está enviando o certificado de assinatura. Você pode tentar entrar em contato com sua equipe de rede e solicitar isso. Em termos de segurança, não há absolutamente nenhuma razão para eles não fornecerem isso a você (é ochaveque deve ser protegido).
Por exemplo, recebo o seguinte (sim, como não estou atrás de um proxy SSL, recebo os certificados reais, mas o conceito permanece):
# openssl s_client -showcerts -connect mirrors.kernel.org:443 CONECTADO(00000003) profundidade = 2 C = US, O = "thawte, Inc.", OU = Divisão de Serviços de Certificação, OU = "(c) 2006 thawte, Inc. - Somente para uso autorizado", CN = thawte CA raiz primária verifique o erro:num=20:não foi possível obter o certificado do emissor local verificar retorno:0 --- Cadeia de certificados 0 s:/C=US/ST=Califórnia/L=San Jose/O=The Linux Kernel Organization/CN=*.kernel.org i:/C=EUA/O=Thawte, Inc./CN=Thawte SSL CA -----INICIAR CERTIFICADO----- 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 BwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTANBgkq hkiG9w0BAQUFAAOCAQEAd7mKHpW1mCB1fGuvR44iX83PmSy3BVEpvOlnH1zNSU/Y 2zMmKDbXqAJTY6t20Yq/GpjW3BA2G4xEA6i64WAGZcSmXfc/NDOSh0i5lTrCofCG 3tuts9HTmHJLfeAz9cZiT4rc4ROMV4K17/Uw81UIid952M/4b6OvhaCu5OSnvDUI 3Z6OUy+AuJHbwEyB5bGOJ/mqVKUztgUK17bJiwDhwZ4Q8PT6YKUj5NgPcG6cUKxY HK6yxvoqH/s1DQJB3JHDSFVgY47ECmoHyQ5MvJN+naNrZJUIH0RTmmHNbQH772W7 m8I66jiDhXTd6+4v8DipvHJOSEv7ebG0Jf6gv7lc6w== -----FIM CERTIFICADO----- 1 s:/C=US/O=Thawte, Inc./CN=Thawte SSL CA i:/C=US/O=thawte, Inc./OU=Divisão de Serviços de Certificação/OU=(c) 2006 thawte, Inc. - Somente para uso autorizado/CN=thawte CA raiz primária -----INICIAR CERTIFICADO----- MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM WJAFGrfFwQalgK+7HUlrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX 7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD 7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0w GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38 1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ KoZIhvcNAQEFBQADggEBAIAigOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq 2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y 3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4= -----FIM CERTIFICADO----- 2 s:/C=US/O=thawte, Inc./OU=Divisão de Serviços de Certificação/OU=(c) 2006 thawte, Inc. - Somente para uso autorizado/CN=thawte CA raiz primária i:/C=ZA/ST=Western Cape/L=Cidade do Cabo/O=Thawte Consulting cc/OU=Divisão de Serviços de Certificação/CN=Thawte Premium Server CA/[e-mail protegido] -----INICIAR CERTIFICADO----- 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= -----FIM CERTIFICADO----- --- Certificado de servidor subject=/C=US/ST=Califórnia/L=San Jose/O=The Linux Kernel Organization/CN=*.kernel.org emissor=/C=EUA/O=Thawte, Inc./CN=Thawte SSL CA --- Nenhum nome de CA de certificado de cliente enviado --- O handshake SSL leu 3566 bytes e gravou 636 bytes --- Novo, TLSv1/SSLv3, a cifra é RC4-SHA A chave pública do servidor é de 2.048 bits A renegociação segura é suportada Compressão: NENHUMA Expansão: NENHUMA Sessão SSL: Protocolo: TLSv1 Cifra: RC4-SHA ID da sessão: EAB5C93513AA8829036C7BB9E3F74D99076C8A339EB220832F76DF73D52D0B22 ID de sessão-ctx: Chave Mestra: 0A599E2D1CCAA8249E50871FDF03A2137BA034BCB20FA691D1413822BE08E15303CB0F59CDEC0376D670E08632EF0D46 Chave-Arg: Nenhum Identidade PSK: Nenhuma Dica de identidade PSK: Nenhuma Nome de usuário SRP: Nenhum Bilhete de sessão 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[./. Hora de início: 1380663897 Tempo limite: 300 (seg) Verifique o código de retorno: 20 (não é possível obter o certificado do emissor local) ---
Eu acrescentaria o certificado 2, o (último). Eu não precisaria do certificado 1, pois é um certificado de cadeia e está autorizado a ser um certificado de cadeia pelo certificado 2. No entanto, eu poderia adicionar o certificado 1 também e não faria mal.
Responder2
Caso ajude alguém, tive um problema semelhante e resolvi de forma um pouco diferente. Meu proxy corporativo estava usando certificados autoassinados intermediários. Isso não ficou evidente apenas nos programas de linha de comando em minha máquina virtual, mas também nos navegadores. Ao navegar para um site externo em um navegador (Chromiumim), vi a mensagem não confiável, pois o site estava usando o certificado intermediário auto-assinado. Clicando na área do ícone de cadeado na barra de URL, consegui baixar os certificados intermediários. Então apenas segui as seguintes instruções. A correção se aplica globalmente a programas de linha de comando e navegadores, etc.
https://wiki.archlinux.org/title/User:Grawity/Adding_a_trusted_CA_certificate