Squid反向代理SSL加密的SharePoint站点

简介:

References:

http://apps.hi.baidu.com/share/detail/20306022

http://www.ajaxstu.com/Proxyfuwuqi/333031.html

http://www.php-oa.com/tag/squid

环境介绍

系统:CentOS 5.7 64bit

Squid2.6STABLE21

反代目标:https://www.avepoint.net

安装Squid

Squid 官方下载地址:

http://www.squid-cache.org/Versions/

作为老牌的Proxy软件,Squid的支持度非常好,除了源码包和详尽的文档外,主流发行版均有二进制包直接提供。

此次实验的由于目的十分单纯,为了简化流程,采用直接yum安装:

yum install squid -y


修改配置

1. yum 安装的 squid 默认是没有 visible_hostname 的,首先添加 visible_hostname:

vi squid.conf

这里我添加了 ave_squid 作为 squid 的主机名:

visible_hostname ave_squid

2. 添加acl允许squid访问欲代理站点

acl ssl_server dstdomain .avepoint.net

# *.avepoint.net 允许访问

http_access allow ssl_server

!注意:不建议直接放开 http_access allow all,虽然看似省事,但可能会造成安全隐患!


3. 增加squid监听443端口并加载自签证书

https_port 443 cert=/etc/squid/ssl/avepoint.net.crt key=/etc/squid/ssl/avepoint.net.key defaultsite=www.avepoint.net accel


4. 预防老版本IESSL bug

ssl_unclean_shutdown on


5. 添加源网站

cache_peer www.avepoint.net parent 443 0 no-query no-digest originserver login=PASS ssl sslflags=DONT_VERIFY_PEER front-end-https=on

a) login=PASS 是为了告知 squid 此源网站需要用户名/密码验证,用于解决SP等网站的登录认证;

b) ssl 为指定协议,后跟的 sslflags=DONT_VERIFY_PEER 为不进行源端SSL证书验证,可以解决上级网站采用自签证书造成的中断,以及减少响应时间;

c) front-end-https=on 是为微软OWA使用SSL反代理而量身订做的参数。


6. 关于 cache_mem  cache_dir

如字面所述,cache_mem 是将部分缓存(通常是指定容量以下的小文件)放在内存中,cache_dir是指定硬盘上的squid缓存目录。此处我们不涉及缓存内容,所以保持默认即可。

值得一提的是,硬盘缓存可以使用 tmpfs 文件系统,即所谓的 shm,实质上大致与 ramdisk 等同,可以提高性能。

至此配置基本完成,可以启动squid测试了:

1.png

备注

1. 如果 squid 反代的并发较高时,可能会遇到类似 file descriptor error 的错误,多是因为Linux默认的同时打开文件数仅为1024,而此时打开的缓存文件大小早已超过这个数值。

解决方式:

ulimit -n 65535

2. squidclient  squid 自带的一个功能十分强大的管理软件,可以独立或搭配其他软件对 squid 的状态和缓存内容进行查看和操作。例:

squidclient -t 1 -h localhost -p 3128 mgr:info

注意,3128 端口需要在 squid 中定义为 http_port

3. 日志位置

/var/log/squid :

access.log 代理访问日志

cache.log squid 缓存的相关运行信息

squid.out squid 程序本身的运行信息

store.log 对缓存文件的操作记录

4. 自签证书的生成可参照Nginx的笔记,在此不再赘述。

小结

作为老牌的 ProxySquid 参数十分繁杂,但与之对应的是极大丰富的功能。

如果需求简单明确如本实验所述的话,不需要过多的配置就可以实现所需功能。

让我留下深刻印象的是,Squid 提供了强大的对 header 进行操作的方式,可以细致地控制 header 输出与否,以及对 header 进行更改等等,实用性很强。










本文转自 安安安安森  51CTO博客,原文链接:http://blog.51cto.com/smallc/1230675,如需转载请自行联系原作者
目录
相关文章
|
11天前
|
安全 网络协议 网络安全
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
|
2月前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
79 3
|
1月前
|
网络安全 数据安全/隐私保护
邮件Demo(SSL加密传输)
private final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; private String smtpServer; // SMTP服务器地址 private String port; // 端口 private String username; // 登录SMTP服务器的用户名 private String password; // 登录SMTP服务器的密码 private List<String> recipients = new ArrayList<String>(); // 收件人地址集合
15 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
SSL加密
【5月更文挑战第9天】SSL加密
26 1
|
2月前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
277 0
|
2月前
|
网络安全 数据安全/隐私保护
JavaMail给QQ邮箱发邮件报错,没有SSL加密
JavaMail给QQ邮箱发邮件报错,没有SSL加密
|
2月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
194 0
|
1月前
|
安全 网络安全
如何给网站添加ssl安全证书
如何给网站添加ssl安全证书
44 1
|
2月前
|
存储 算法 安全
ssl 证书名词解释--crt和pem
ssl 证书名词解释--crt和pem
190 0
|
2月前
|
Linux 应用服务中间件 网络安全
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
47 0