Вопрос или проблема
Я уже неделю борюсь с Squid 4.13 на Ubuntu 20.04.
Моя последняя (и, надеюсь, последняя) проблема заключается в следующем:
ФАТАЛЬНО: Нет действительного сертификата подписи, настроенного для HTTPS_port
Вот строка, в которой это указано:
https_port 0.0.0.0:3128 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/etc/rootCA.crt key=/usr/local/squid/etc/rootCA.key options=SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=/usr/local/squid/etc/dhparam.pem
Я искал информацию везде (по крайней мере, так кажется), и даже в вики Squid (https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit) странно? потому что в начале они показывают, как делать .pem файлы, но в конце документа, где они показывают пример строки, говорят о .crt и .key и совершенно другом .pem файле..
Единственное, что я изменил, это увеличил число бит до 4096
Так что опять я в недоумении!
Кто-нибудь знает, о чем они говорят?
Каков правильный формат, как это сделать и … Ах! Помогите?
Правка:
Вот “стандартная” конфигурация, которую я использую:
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "эта" сеть (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 локальная частная сеть (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 общая адресное пространство (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 локальные машины (подключенные напрямую)
acl localnet src 172.16.0.0/12 # RFC 1918 локальная частная сеть (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 локальная частная сеть (LAN)
acl localnet src fc00::/7 # RFC 4193 диапазон локальной частной сети
acl localnet src fe80::/10 # RFC 4291 локальные машины (подключенные напрямую)
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # незарегистрированные порты
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # многоязычный http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
include /etc/squid/conf.d/*
http_access allow localhost
http_access allow all
include /etc/squid/conf.d/*
https_port 0.0.0.0:3128 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB tls-cert=/usr/local/squid/etc/Root-ca-cert.pem cert=/usr/local/squid/etc/rootCA.crt key=/usr/local/squid/etc/rootCA.key options=SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=/usr/local/squid/etc/dhparam.pem
Включенная конфигурация из /etc/squid/conf.d – это файл с именем debian.conf:
#
# Настройки конфигурации Squid для Debian
#
# Логи управляются logrotate на Debian
logfile_rotate 0
# Для дополнительной безопасности пакеты Debian допускают использование прокси
# только с localhost на новых установках
#
#http_access allow localnet
как запрашивалось:
4 авг 12:25:47 socks systemd[1]: Запуск Squid Web Proxy Server...
4 авг 12:25:52 socks squid[9474]: 2021/08/04 12:25:52| ФАТАЛЬНО: Нет действительного сертификата подписи, настроенного для HTTPS_port 0.0.0.0:3128
4 авг 12:25:52 socks squid: ФАТАЛЬНО: Нет действительного сертификата подписи, настроенного для HTTPS_port 0.0.0.0:3128
4 авг 12:25:52 socks squid[9474]: 2021/08/04 12:25:52| Squid Cache (Версия 4.13): Завершено с ошибкой.
4 авг 12:25:52 socks squid[9474]: Использование процессора: 5.132 секунд = 5.128 пользовательских + 0.004 системных
4 авг 12:25:52 socks squid[9474]: Максимальный размер резидента: 62224 КБ
4 авг 12:25:52 socks squid[9474]: Ошибки страниц с физическим вводом-выводом: 0
4 авг 12:25:52 socks systemd[1]: squid.service: управление процессом завершилось, код=завершено, статус=1/НЕУСПЕХ
4 авг 12:25:52 socks systemd[1]: squid.service: Провалилось с результатом 'кода выхода'.
4 авг 12:25:52 socks systemd[1]: Не удалось запустить Squid Web Proxy Server.
Частью решения была проблема ID 10 T, похоже, сертификат был неисправен, хотя тесты показали, что с ним все в порядке, но при создании нового сертификата все заработало.
Позже возникшая проблема с циклом была выявлена здесь: https://unix.stackexchange.com/questions/664236/squid-proxy-is-eating-up-its-own-resources-and-other-issues
и новый вопрос был опубликован здесь: https://unix.stackexchange.com/questions/664669/squid-caught-in-loop-cert-error
Ответ или решение
Решение проблемы: Squid! FATAL: No valid signing certificate configured for HTTPS_port
При использовании Squid 4.13 на операционной системе Ubuntu 20.04 может возникнуть ошибка:
FATAL: No valid signing certificate configured for HTTPS_port
Эта ошибка связана с неправильной настройкой сертификатов для HTTPS-порта. Давайте подробно рассмотрим, как исправить эту проблему.
1. Проверка конфигурации
Начнем с анализа строки конфигурации, в которой возникает ошибка:
https_port 0.0.0.0:3128 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/etc/rootCA.crt key=/usr/local/squid/etc/rootCA.key options=SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=/usr/local/squid/etc/dhparam.pem
В этой строке указаны пути к сертификату и ключу, но важно удостовериться, что они ссылаются на действительные и корректно сформированные файлы.
2. Создание нового корневого сертификата
Ваша ошибка может возникнуть из-за поврежденного или неправильно сгенерированного сертификата. Следуйте этим шагам для создания нового сертификата:
-
Генерация нового закрытого ключа:
openssl genrsa -out /usr/local/squid/etc/rootCA.key 4096
-
Создание нового самоподписанного сертификата:
openssl req -new -x509 -days 365 -key /usr/local/squid/etc/rootCA.key -out /usr/local/squid/etc/rootCA.crt
При выполнении этой команды нужно будет заполнить информацию о сертификате (например, страна, штат, организация и т. д.).
- Генерация параметров DH:
openssl dhparam -out /usr/local/squid/etc/dhparam.pem 2048
3. Проверка прав доступа
Убедитесь, что пользователь, от имени которого работает Squid, имеет доступ к сертификату и закрытому ключу:
chown proxy:proxy /usr/local/squid/etc/rootCA.crt
chown proxy:proxy /usr/local/squid/etc/rootCA.key
chmod 400 /usr/local/squid/etc/rootCA.key
4. Перезапуск службы Squid
После изменения конфигурации и генерации новых сертификатов необходимо перезапустить Squid:
systemctl restart squid
5. Дополнительные проверки
Если ошибка все еще возникает, можно выполнить дополнительные проверки:
-
Проверьте наличие синтаксических ошибок в конфигурационном файле Squid:
squid -k parse
-
Убедитесь, что все необходимые компоненты SSL установлены:
apt install openssl
Заключение
Соблюдение вышеуказанных шагов должно помочь вам устранить ошибку "No valid signing certificate configured for HTTPS_port". Если проблема по-прежнему остается нерешенной, возможно, стоит обратиться к документации на официальном сайте Squid или форумам поддержки. Удачи в настройке вашего прокси-сервера!