Я настроил Arch Linux VM на работе, и моя компания использует прозрачный (сквозной) прокси с самоподписанным сертификатом и требует аутентификации. Всякий раз, когда я пытаюсь установить какие-либо пакеты, pacman
я получаю следующую ошибку (например, при попытке установить lynx
)
ошибка: не удалось получить файл 'lynx-2.8.7-6-x86_64.pkg.tar.xz' с mirrors.kernel.org : Проблема с сертификатом 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 с:/C=US/ST=Калифорния/L=Сан-Хосе/O=Организация ядра Linux/CN=*.kernel.org i:/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[email protected] -----НАЧАЛО СЕРТИФИКАТА----- ... бла бла бла -----КОНЕЦ СЕРТИФИКАТА----- --- Сертификат сервера subject=/C=US/ST=Калифорния/L=Сан-Хосе/O=Организация ядра Linux/CN=*.kernel.org эмитент=/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[email protected] --- Имена 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 -connect mirrors.kernel.org:443 ПОДКЛЮЧЕНО(00000003) глубина=2 C = US, O = "thawte, Inc.", OU = Certification Services Division, OU = "(c) 2006 thawte, Inc. - Только для авторизованного использования", CN = thawte Primary Root CA ошибка проверки: num=20: невозможно получить сертификат локального эмитента проверить возврат:0 --- Цепочка сертификатов 0 с:/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 BwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTANBgkq 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=Certification Services Division/OU=(c) 2006 thawte, Inc. - Только для авторизованного использования/CN=thawte Primary Root CA -----НАЧАЛО СЕРТИФИКАТА----- MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM 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= -----КОНЕЦ СЕРТИФИКАТА----- 2 s:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - Только для авторизованного использования/CN=thawte Primary Root CA i:/C=ZA/ST=Западный Кейп/L=Кейптаун/O=Thawte Consulting cc/OU=Отдел сертификационных услуг/CN=Thawte Premium Server CA/[email protected] -----НАЧАЛО СЕРТИФИКАТА----- 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 Идентификатор сеанса: EAB5C93513AA8829036C7BB9E3F74D99076C8A339EB220832F76DF73D52D0B22 Идентификатор сеанса-ctx: Мастер-ключ: 0A599E2D1CCAA8249E50871FDF03A2137BA034BCB20FA691D1413822BE08E15303CB0F59CDEC0376D670E08632EF0D46 Ключ-Аргумент: Нет Идентификация PSK: Нет Подсказка идентификации PSK: Нет Имя пользователя SRP: Нет Билет сеанса TLS: 0000 - ак 28 d2 81 da 5e b9 7f-43 52 ab e8 2c b0 ак 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 а8 е3 ес 9а 6а 76 5д-с0 84 е0 аа 20 29 ае ас U....jv].... ).. 0040 - 7д 45 2б 3б 56 3в 2д 4б-д3 69 60 с8 фб 67 36 07 }Э+;В...;.]п....... 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/Добавление_доверенного_сертификата_CA