我想让我的网站只使用 https。我尝试了以下解决方案: Squid 反向代理重定向/重写 HTTP 到 HTTPS
acl PORT80 myport 80
acl MYSITE dstdomain foo.server.com
http_access deny PORT80 MYSITE
deny_info 301:https://foo.server.com%R MYSITE
就我而言:
acl PORT80 myport 80
acl MYSITE dstdomain www.asrtos.com
http_access deny PORT80 MYSITE
deny_info 301:https://www.asrtos.com%R MYSITE
这不起作用,因为浏览器仍然可以访问端口 80
我该怎么办?非常感谢您的帮助。
我的 squid.conf 文件是:
#
# Recommended minimum configuration:
#
debug_options ALL,1 33,2 28,9
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 82.223.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 443 563 # https
acl CONNECT method CONNECT
#
# Recommended minimum Access Permission configuration:
#
# accept only SSL ports
http_access deny !Safe_ports
http_access allow Safe_ports
acl PORT80 myport 80
acl MYSITE dstdomain www.asrtos.com
http_access deny PORT80 MYSITE
deny_info 301:https://www.asrtos.com%R MYSITE
http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
https_port 443 accel cert=/etc/ssl/certs/asrtos.com_ssl_certificate.cer key=/etc/ssl/certs/_.asrtos.com_private_key.key cafile=/etc/ssl/certs/_.asrtos.com_ssl_certificate_INTERMEDIATE.cer defaultsite=workflow01.asrtos.com
cache_peer 82.223.66.210 parent 80 0 no-query originserver name=hp # If you use one single computer, write this instead:
http_port 3128 accel defaultsite=workflow01.asrtos.com vhost # Doc config reverse proxy sous linux
# And finally deny all other access to this proxy
http_access deny all
# Uncomment the line below to enable disk caching - path format is /cygdrive/<full path to cache folder>, i.e.
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/cache/squid
max_filedescriptors 3200
基础设施应如下:
https--[反向代理 SQUID]--http--[Domino 服务器]< - - >(Domino 数据库)
http 服务器是集成到 Domino 服务器的一部分。(Domino 服务器的一项任务)
Squid 反向代理和 Domino 服务器安装在同一台 Windows 2008 R2 机器上。互联网应用程序通过 Domino 服务器访问 Domino 数据库。
根据用户权限,domino 服务器发送登录表单来识别用户。所有用户权限的计算均由 domino 服务器自动完成。
在 http 模式下(非安全模式一切运行良好)。我必须安装安全模式,一切运行良好,但有一个例外:
当 Web 客户端发送此 URL 时:https://www.asrtos.com/database.nsf
服务器发送登录表单来检查用户权限,然后打开以下url: http://www.asrtos.com/database.nsf(非安全模式下相同的 URL)。
如果我手动修改 url:https://www.asrtos.com/database.nsf一切正常。但始终可以手动返回非安全模式:http://...
我无法访问集成到 Domino 服务器的 HTTP 任务。
所以我不知道如何在 Domino http 服务器内部进行重定向。
我希望可以在代理内部找到解决方案。
答案1
Squid 的此配置正确:
最低配置:
调试选项全部,0
acl localnet src 82.223.0.0/12 # RFC1918 可能的内部网络 acl localhost src 127.0.0.1/255.255.255.255 acl Safe_ports port 443 # https
cache_peer myServer.myDomain parent 8088 0 no-query originserver name=myServer.myDomain Front-End-Https: On # 如果您使用一台计算机,请改为这样写:https_port 443 accel cert=/etc/ssl/certs/myDomain_ssl_certificate.cer key=/etc/ssl/certs/_.myDomain_private_key.key cafile=/etc/ssl/certs/_.myDomain_ssl_certificate_INTERMEDIATE.cer defaultsite=myServer.myDomain http_port 80 accel defaultsite=myServer.myDomain
http_access 允许 Safe_ports
acl PORT80 端口80 http_access 拒绝 PORT80 denied_info 301:https://%H%R 端口80
http_access 拒绝所有 http_port 3128 透明 dns_nameservers 127.0.0.1
最大文件描述符 3200