我有一个 VPS。如何通过 HTTPS 协议连接到我的服务器并将浏览器连接重定向到 HTTPS 连接?
目前我使用 SSH 隧道,但速度太慢。
答案1
我使用 Squid 作为代理服务器隧道作为 SSL 包装器。由于缓存,它具有非常好的性能。
鱿鱼配置
安装Squid后,请执行以下操作鱿鱼文档并配置它。这是示例配置:
http_port 3193 透明 缓存目录 ufs /var/cache/squid 128 16 128 缓存内存 1 MB 内存中最大对象大小 512 KB 最大对象大小 1 MB visible_hostname 主机名.com hierarchy_stoplist cgi-bin ? 刷新模式 ^ftp:1440 20% 10080 刷新模式 ^gopher: 1440 0% 1440 刷新模式 -i (/cgi-bin/|\?) 0 0% 0 刷新模式。 0 20% 4320 acl管理器原型cache_object acl 本地主机 src 127.0.0.1/32::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 # RFC 1918 可能的内部网络 acl localnet src 172.16.0.0/12 # RFC 1918 可能的内部网络 acl localnet src 192.168.0.0/16 # RFC 1918可能的内部网络 acl localnet src fc00::/7 # RFC 4193 本地专用网络范围 acl localnet src fe80::/10 # RFC 4291 链路本地(直接插入)机器 acl SSL_ports 端口 443 acl Safe_ports 端口 80 # http acl Safe_ports 端口 21 # ftp acl Safe_ports 端口 443 # https acl Safe_ports 端口 70 # gopher acl Safe_ports 端口 210 # wais acl Safe_ports port 1025-65535 # 未注册的端口 acl Safe_ports 端口 280 # http-mgmt acl Safe_ports 端口 488 # gss-http acl Safe_ports 端口 591 # filemaker acl Safe_ports 端口 777 # 多路 http acl CONNECT 方法 CONNECT auth_param 基本程序 /usr/libexec/squid/pam_auth auth_param 基本子项 5 auth_param 基本领域 Squidy auth_param 基本凭证 4 小时 acl 密码 proxy_auth 必需 http_access 允许管理器 http_access 拒绝!Safe_ports http_access 拒绝 CONNECT !SSL_ports http_access 允许密码 http_access 允许本地主机 http_access 允许本地网络 http_access 拒绝所有 通过关闭 转发_关闭 request_header_access 允许 允许所有 request_header_access 授权允许所有 request_header_access WWW-Authenticate 允许所有 request_header_access 代理授权允许所有 request_header_access 代理认证允许所有 request_header_access 缓存控制允许所有 request_header_access 内容编码允许所有 request_header_access 内容长度允许所有 request_header_access 内容类型允许所有 request_header_access 日期允许所有 request_header_access 过期允许所有 request_header_access 主机允许所有 request_header_access If-Modified-Since 允许所有 request_header_access Last-Modified 允许所有 request_header_access 位置允许所有 request_header_access Pragma 允许所有 request_header_access 接受允许所有 request_header_access 接受字符集允许所有 request_header_access 接受编码允许所有 request_header_access 接受语言允许所有 request_header_access 内容语言允许所有 request_header_access Mime 版本允许所有 request_header_access 重试-允许所有之后 request_header_access 标题允许所有 request_header_access 连接允许所有 request_header_access 代理连接允许所有 request_header_access 用户代理允许所有 request_header_access Cookie 允许所有 request_header_access 全部拒绝全部
它监听端口3193 tcp
。然后是缓存选项,一些 acl 命令和auth_param
PAM 身份验证(您可能不希望打开代理并因垃圾邮件报告而丢失 VPS)。request_header_access
不需要线路。他们为您提供更好的匿名性。
Stunnel服务器配置
在服务器上安装 stunnel。这是示例配置:
setuid = 隧道 setgid = 隧道 CAfile = /etc/stunnel/certs.pem CRL文件 = /etc/stunnel/crls.pem [代理人] 接受=8888 连接=127.0.0.1:3193
可能是在 stunnel 安装时制作的认证文件。检查 中的文件路径CAfile
。它只是监听端口8888 tcp
并将解密的流重定向到 Squid。因此,请确保它是可访问的:
iptables -I INPUT 1 -p tcp --dport 8888 -j ACCEPT
您不再需要使鱿鱼侦听端口成为世界范围内可达的。
Stunnel 客户端配置
在本地计算机上安装 stunnel 并根据需要更改此配置:
setuid = 隧道 setgid = 隧道 pid = /var/run/stunnel/stunnel.pid [环氧] 接受=8123 连接=服务器IP:8888 客户 = 是 libwrap = 否
将 server_ip 替换为适当的值。然后在服务器上启动Squid并在客户端和服务器上启动Stunnel。像localhost:8123
在浏览器中一样设置代理。如果一切正常,系统必须提示您输入用户名和密码。
答案2
https服务器是apache吗?我不完全理解你的情况,但如果你有 mod_proxy,你也许可以做你想做的事。
答案3
我从未在虚拟主机上设置过任何东西,但这里有一些关于通用 HTTPS 的信息:
HTTPS 使用 HTTP 和 SSL 的组合(请参阅此处的维基百科文章:http://en.wikipedia.org/wiki/HTTP_Secure)。 HTTPS 本身并不是真正的协议,而是在 SSL 隧道上运行的普通 HTTP。
HTTPS 使用 CA(证书颁发机构)和 PKI(公钥基础设施)来确保用户可以“信任”该站点。您必须为 Web 服务器创建一个公钥证书,并且该证书必须由受信任的 CA(例如 VeriSign)签名。要获得受信任的证书,您可能需要支付年费来维护。
如果您没有通过受信任的 CA,用户在尝试连接到您的网站时会收到警告。这通常会导致用户离开您的网站,因为他们可能认为这是一个安全风险。
另外,请记住,虽然 HTTP 默认使用端口 80,但 HTTPS 使用 443,因此如果您有任何端口转发/端口阻止,则必须确保该端口可供您连接。要使用 HTTPS,您还必须确保在导航到站点时将其键入 URL,否则它可能会默认使用 HTTP。
编辑:这里很好地介绍了 HTTPS 如何运行: http://securityworkshop.blogspot.com/2009/01/how-httpsssl-works-part-1-basics.html
答案4
我的水晶球说你应该看看http://www.stunnel.org/static/stunnel.html
万一球错了,也无所谓。