Если клиент общается с сайтом, который говорит по HTTP, но не по HTTPS, вы не можете "заставить" его говорить по HTTPS. Сам сайт должен поддерживать HTTPS. Многие сайты поддерживают HTTP и HTTPS, но есть некоторые, которые все еще используют только HTTP.
ИМХО, это лучше решать с помощью надстройки браузера, но Squid позволяет фильтровать запросы через скрипт, который может переписать эти запросы. Таким образом, вы можете сделать что-то вроде этого, отрывок ниже:
Here's how I do exactly that. In squid.conf:
url_rewrite_program /usr/local/bin/rewrite-http
and then:
% cat /usr/local/bin/rewrite-http
#!/usr/bin/perl
#
# URL rewriter for squid to convert HTTP requests to HTTPS.
# Return an HTTP permanent redirect back to the browser.
# http://wiki.squid-cache.org/SquidFaq/SquidRedirectors
#
$| = 1;
while (<>) {
s/^http:/301:https:/; # replace "http" with "https"
print;
}
Но это сломает любой сайт, который не имеет HTTPS-эквивалента на том же доменном имени.
Вы могли бы сделать этот скрипт немного более сложным, чтобы он сверялся со списком известных доменов и только перенаправлял их. Однако обратите внимание, что, поскольку каждый HTTP-запрос проходит через прокси, он может замедлять работу всех, кто использует прокси, особенно в маломощных системах, таких как Raspberry Pi.