Я использую Linode и Squid3 в качестве прокси, но не могу заставить его работать с сайтами https. Он работает через http, но когда я пытаюсь зайти на сайт с https, скажем https://google.com/, я просто получаю:

The connection was reset
The connection to the server was reset while the page was loading.

Обновление: кажется, что у меня есть только эти проблемы в моей домашней сети. Попытка поделиться с моим телефоном и в другой сети (на другом интернет-провайдере) это работает. Не совсем уверен, как отладить это. Проверить роутер? Может ли интернет-провайдер блокировать трафик прокси? (Кажется орехи)

Я использую Ubuntu 12.10 и изначально использовал squid3, установленный с помощью apt-get install squid3 . squid -v показал:

Squid Cache: Version 3.1.20
configure options:  '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM' '--enable-ntlm-auth-helpers=smb_lm,' '--enable-digest-auth-helpers=ldap,password' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--enable-arp-acl' '--enable-esi' '--enable-zph-qos' '--enable-wccpv2' '--disable-translation' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-squid=/build/buildd/squid3-3.1.20

В моих попытках решить эти проблемы я отметил, что squid3 не был скомпилирован с --enable-ssl . Итак, я собрал исходный код с помощью --enable-ssl , и теперь squid3 -v показывает:

Squid Cache: Version 3.1.20
configure options:  '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM' '--enable-ntlm-auth-helpers=smb_lm,' '--enable-digest-auth-helpers=ldap,password' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--enable-arp-acl' '--enable-esi' '--enable-zph-qos' '--enable-wccpv2' '--enable-ssl' '--disable-translation' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--with-open-ssl=/etc/ssl/openssl.cnf' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-squid=/root/squid3-3.1.20

И я все еще получаю ту же ошибку. Мой конфигурационный файл выглядит так:

via off
forwarded_for delete
follow_x_forwarded_for deny all
acl SSL method CONNECT
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
acl theUser proxy_auth myuser
http_access allow theUser
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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  # unregistered ports
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     # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_port 1153
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .       0   20% 4320
cache_effective_user proxy
cache_effective_group proxy
https_port 1153 cert=/etc/squid3/ssl/squid.crt key=/etc/squid3/ssl/squid.key vhost

Я поиграл с номером https_port, и все порты открыты, так как я могу telnet <IP> 1153 и установить соединение.

Я не совсем уверен, что попробовать или сделать. Я просто хочу иметь возможность посещать https/ssl сайты с прокси. Нужны ли другие модули или это проблема конфигурации? Мне не нужно никакого кеширования или чего-то еще, так как это просто настройка прокси браузера.

Вот настройки прокси в Firefox:Настройки прокси Firefox

1 ответ1

1

Поскольку этот прокси-сервер является внешним по отношению к сети, в которой вы тестируете, вероятно, ваш интернет-провайдер (более вероятно) или маршрутизатор блокирует любой трафик, содержащий директиву CONNECT , которая необходима для сеанса SSL через прокси-сервер.

Если вы подключитесь к прокси-серверу по протоколу SSL (поместив обратно строку https_port ), они не увидят содержимое сеанса и не увидят CONNECT .

Однако подключиться к прокси-серверу через https сложно. Один из подходов состоит в том, чтобы установить туннель VPN или SSL к прокси-серверу и получить доступ к прокси-серверу через туннель, избегая необходимости использовать прокси-сервер https. Это также послужило бы хорошим тестом для подтверждения того, что ваш провайдер вызывает разрыв соединения. Вы можете сделать это используя ssh:

ssh -L1153:127.0.0.1:1153 proxy

Затем установите прокси-сервер браузера на 127.0.0.1 и порт 1153 . Любой трафик, отправляемый на локальный порт 1153 будет передаваться по туннелю ssh на порт 1153 на прокси-сервере.

Есть способы доступа к прокси-серверу через ssl, есть расширение для Firefox. Есть также несколько способов сделать это с помощью Chrome, либо запустить его с помощью:

chrome --proxy-server=https://proxy:1153

Или используйте сценарий автоматической настройки прокси, для которого определен прокси https:

function FindProxyForURL(url, host) { return "HTTPS proxy:1153"; }

Вы можете использовать тот же трюк, что и в комментариях, чтобы убедиться, что ssl-сертификаты squid в порядке:

openssl s_client -connect proxy:1153

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .