Debian编译ssl如何实现squid的反向代理https端口。提示:squid需要重新编译;客户端到squid一定需要ssl证书,squid到web服务器可以是用80,也可以使用443,使用443就需要证书。
时间: 2024-03-31 11:36:51 浏览: 73
详细解析用Squid实现反向代理的方法
要让squid支持反向代理HTTPS端口,需要重新编译squid,并且在编译时启用SSL支持。具体步骤如下:
1. 安装依赖库:
```
sudo apt-get install build-essential openssl libssl-dev
```
2. 下载squid源码包:
```
wget http://www.squid-cache.org/Versions/v4/squid-4.15.tar.gz
tar -xzvf squid-4.15.tar.gz
cd squid-4.15
```
3. 配置、编译和安装squid:
```
./configure --prefix=/usr/local/squid --with-openssl --enable-ssl --enable-ssl-crtd
make
sudo make install
```
上述命令中,--with-openssl和--enable-ssl参数表示启用SSL支持,--enable-ssl-crtd参数表示启用SSL证书缓存。
4. 生成SSL证书:
为了让squid支持HTTPS反向代理,需要为squid生成一个SSL证书。可以使用以下命令生成SSL证书:
```
cd /usr/local/squid/etc/
openssl req -new -newkey rsa:2048 -nodes -keyout squid.key -out squid.csr
openssl x509 -req -days 365 -in squid.csr -signkey squid.key -out squid.crt
```
5. 配置squid:
编辑squid配置文件/etc/squid/squid.conf,添加以下内容:
```
http_port 80 accel defaultsite=www.example.com
https_port 443 accel defaultsite=www.example.com cert=/usr/local/squid/etc/squid.crt key=/usr/local/squid/etc/squid.key
cache_peer web_server_ip_address parent 80 0 no-query originserver name=webserver
cache_peer web_server_ip_address parent 443 0 no-query originserver ssl sslflags=DONT_VERIFY_PEER name=webserver_https
acl ssl_port port 443
acl ssl method CONNECT
http_access allow ssl_port ssl
http_access allow webserver
http_access allow webserver_https
```
上述配置中,http_port设置为80,https_port设置为443,并开启了加速模式。cache_peer指令用于设置反向代理服务器,其中web_server_ip_address为反向代理的目标服务器的IP地址。ssl_port和ssl方法用于允许SSL连接,http_access用于控制访问权限。
6. 重启squid服务:
```
sudo service squid restart
```
完成上述配置后,squid即可支持反向代理HTTPS端口。但是客户端到squid之间仍然需要SSL证书,可以自行使用openssl生成证书并配置客户端。
阅读全文