У меня есть вариант использования, когда я должен принять самозаверяющий сертификат в Squid.
Конечные точки — это кластеры Kubernetes, использующие самозаверяющие сертификаты. Кластеры будут воссозданы по запросу с другим самозаверяющим сертификатом, поэтому их необходимо принимать с помощью регулярного выражения, предпочтительным способом или глобально для целей тестирования.
Текущая версия Squid — 6.0.0, скомпилированная со следующими флагами:
Кэш Squid: версия 6.0.0-VCS
Имя службы: кальмар
Этот бинарный файл использует OpenSSL 1.1.1 от 11 сентября 2018 года.Юридические ограничения на распространение см. на странице https://www.openssl.org/source/license.html.
параметры конфигурации: '--prefix=/apps/squid' '--enable-icap-client' '--enable-ssl' '--with-openssl' '--enable-ssl-crtd' '--enable- security-cert-generators=file' '--enable-au
th' '--with-default-user=proxy'
В своих тестах я играл с конфигами ssl_bump и tls_outgoing_options:
http_port 8080 ssl-bump cert=/apps/squid/etc/ssl_cert/CA_crt.pem key=/apps/squid/etc/ssl_cert/CA_key.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
sslcrtd_program /apps/squid/libexec/security_file_certgen -s /apps/squid/var/logs/ssl_db -M 4MB
sslcrtd_children 5
ssl_bump поднять все
sslproxy_cert_error разрешить все
tls_outgoing_options options=ВСЕ флаги=DONT_VERIFY_PEER,DONT_VERIFY_DOMAIN
Но лучший результат, которого я могу достичь, это _curl: (51) SSL: нет альтернативного имени субъекта сертификата, совпадающего с именем целевого хоста
Или без ssl_bump
http_port 8080 ssl-bump cert=/apps/squid/etc/ssl_cert/CA_crt.pem key=/apps/squid/etc/ssl_cert/CA_key.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
sslcrtd_program /apps/squid/libexec/security_file_certgen -s /apps/squid/var/logs/ssl_db -M 4MB
sslcrtd_children 5
sslproxy_cert_error разрешить все
tls_outgoing_options options=ВСЕ флаги=DONT_VERIFY_PEER,DONT_VERIFY_DOMAIN
Я получил curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL в связи с
Сегодня мне нужны конечные точки K8S, а завтра могут быть любые другие конечные точки, поэтому может возникнуть необходимость заставить squid создавать соединение, обманывая CN.