Интересно, все ли сторонние приложения будут учитывать настройки прокси. Или, если изменение общесистемных настроек прокси может помешать другим приложениям. (Например, когда для доступа в Интернет требуется прокси-сервер компании, его нельзя изменить, просто перенаправив трафик на twitter.com
.) К счастью, когда приложение не использует HTTPS, оно не может найти посредника. Итак: настройте посредника для twitter.com
на порт 80, используя DeleGate .
Следующие шаги были протестированы на Mac OS X 10.6 и Windows XP с использованием учетных записей с полными правами администратора.
Загрузите DeleGate. Не позволяйте домашней странице 1990-х обмануть вас: программа все еще поддерживается.
Скажите DeleGate пересылать все локальные запросы через порт 80 (и 443) на сервер HTTPS, основываясь на значении заголовка Host в HTTP-запросе. Как для Mac на Intel (где sudo
требуется для использования привилегированных портов ниже 1024):
sudo ./macosxi-dg -v -P80,443 \
SERVER=https \
RELAY=vhost \
RESOLV=cache,dns \
STLS=-fcl,fsv \
ADMIN=a@b.c
Для Windows, если разархивирован в c:\
:
cd c:\dg9_9_4\bin
dg9_9_4.exe -v -P80,443 SERVER=https RELAY=vhost RESOLV=cache,dns STLS=-fcl,fsv ADMIN=a@b.c
Если вам необходимо использовать прокси вашей компании для доступа в Интернет, то DeleGate с радостью воспользуется этим, если вы добавите что-то вроде PROXY=proxy.example.com:8080
в командную строку.
В вашем /etc/hosts
(c:\windows\system32\drivers\etc\hosts
в Windows XP; см. В Википедии расположение других ОС), добавьте следующую строку, чтобы перенаправить все запросы на twitter.com
на свой компьютер. Обратите внимание, что сопоставление доменного имени с IP-адресом не учитывает протокол. Итак: это будет использоваться не только для HTTP, но и для HTTPS (и всего остального, такого как команды типа ping
).
127.0.0.1 twitter.com
Убедитесь, что ваш браузер не настроен на использование прокси-сервера, или добавьте twitter.com
в качестве исключения. На случай, если ваш браузер кэширует IP-адрес Twitter, вы можете перезапустить его.
Теперь http://twitter.com фактически получает вас (и все ваши приложения) https://twitter.com
.
Вывод показывает, что действительно HTTPS-сайт запрашивается с https://twitter.com
:
REQUEST - GET / HTTP/1.1
REQUEST = https://twitter.com:443/ GET / HTTP/1.1
[..]
ConnectToServer connected [16] {168.143.161.20:443 <- 192.168.1.68:57067}
## SSLway -- TLSxSNI: sent ru=0 ty=0 nm=localhost
## SSLway ## 0.459622 connected/accepted
## SSLway server's cert. =
**subject /
C=US/
O=twitter.com/
OU=GT09721236/
OU=See www.rapidssl.com/resources/cps (c)09/
OU=Domain Control Validated - RapidSSL(R)/
CN=twitter.com
**issuer /
C=US/
O=Equifax Secure Inc./
CN=Equifax Secure Global eBusiness CA-1
При использовании MOUNT="/* https://twitter.com/*"
вместо RELAY=vhost
даже http://localhost
выдаст один https://twitter.com
:
При явном запросе HTTPS с использованием https://twitter.com
цепочка доверенных сертификатов разрывается: приложение, поддерживающее HTTPS , обнаружит атаку «человек посередине» и завершится неудачно, если не сможет запросить у вас разрешения на Продолжить:
После тестирования для запуска в качестве службы в Windows просто удалите параметр -v
. Это установит программу как сервис. Затем он будет работать в фоновом режиме и спросит вас, хотите ли вы запустить его при запуске:
Trying to start as a service [DeleGate Server -P80,443] ...
Set Automatic Start on System Startup ? [y] / n :
После выполнения вышеуказанной команды без параметра -v
: см. Панель управления »Администрирование» Службы, чтобы вручную запустить или остановить DeleGate. Обратите внимание, что эта служба будет ссылаться на папку, из которой вы изначально запустили программу dg9_9_4.exe
. Таким образом, вы не должны удалять или перемещать эту программу; обязательно распакуйте загруженный файл, например, в c:\dg9_9_4
чтобы избежать ссылки на какой-либо каталог загрузок, который вы можете удалить в будущем.
Чтобы удалить службу, убедитесь, что вы указали то же значение для параметра -P
:
dg9_9_4.exe -P80,443 ADMIN=a@b.c
[..]
The service `DeleGate Server -P80,443' exists. Delete it ? [y] / n : y
OK. DELETEd the previous service.
Create a new service ? [y] / n : n
Наконец, можно задаться вопросом, откуда DeleGate знает IP-адрес twitter.com (поскольку мы сопоставили его с 127.0.0.1 в файле hosts
). На самом деле DeleGate извлекает это из-за RESOLV=cache,dns
:
MOUNT[5]X[2] /* https://twitter.com/*
{R} SOA got [162.143.168.in-addr.arpa][ns1.dn.net]
[dnsadmin.enterprise.verio.net] 2008121001 10800 3600 604800 86400