Ubuntu搭建Squid代理服务器以及配置SSL

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

ubuntu的apt-get编译好的squid是没有包含ssl,需要手动编译。

编译安装

安装ssl相关的包

apt-get install openssl libssl-dev ssl-cert

下载squid源码

apt-get source squid
apt-get build-dep squid
apt-get install devscripts build-essential fakeroot

修改编译配置

cd squid3-3.5.12
vi debian/rules

在 DEB_CONFIGURE_EXTRA_FLAGS 下添加两项

  --with-openssl \
  --enable-ssl-crtd \

这两项是启动ssl

编译

./configure
debuild -us -uc -b

安装

编译成功后,会在源代码的父目录,生成一系列.deb包。安装amd64的squid:

cd ..
apt-get install squid-langpack
dpkg -i squid-common_3.5.12-1ubuntu7.3_all.deb
dpkg -i squid_3.5.12-1ubuntu7.3_amd64.deb

配置

配置文件为:/etc/squid/squid.conf。

SSL相关配置:

acl SSL_ports port 443
https_port 10251 cert=/cert/server.crt key=/cert/server.key

分别配置了ssl的端口,服务器证书和密钥。

完整配置可以修改如下:

acl SSL_ports port 443
acl Safe_ports port 1-65535     # unregistered ports
acl CONNECT method CONNECT
acl HEAD method HEAD
http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#http_access allow localhost manager
http_access deny manager
#http_access allow localhost
http_access allow all
http_port 10250
https_port 10251 cert=/cert/server.crt key=/cert/server.key
coredump_dir /var/spool/squid3
# based on http://code.google.com/p/ghebhes/downloads/detail?name=tunning.conf&can=2&q=
#All File
refresh_pattern -i \.(3gp|7z|ace|asx|avi|bin|cab|dat|deb|rpm|divx|dvr-ms)      1440 100% 129600 reload-into-ims
refresh_pattern -i \.(rar|jar|gz|tgz|tar|bz2|iso|m1v|m2(v|p)|mo(d|v)|(x-|)flv) 1440 100% 129600 reload-into-ims
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|css|js)         1440 100% 129600 reload-into-ims
refresh_pattern -i \.(mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p))                   1440 100% 129600 reload-into-ims
refresh_pattern -i \.(og(x|v|a|g)|rar|rm|r(a|p)m|snd|vob|wav)                  1440 100% 129600 reload-into-ims
refresh_pattern -i \.(pp(s|t)|wax|wm(a|v)|wmx|wpl|zip|cb(r|z|t))               1440 100% 129600 reload-into-ims
refresh_pattern -i \.(doc|pdf)$           1440   50% 43200 reload-into-ims
refresh_pattern -i \.(html|htm)$          1440   50% 40320 reload-into-ims
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320
# http options
via off
# memory cache options
cache_mem 512 MB
maximum_object_size_in_memory 256 KB
# disk cache
#cache_dir diskd /var/spool/squid3 10240 16 256
#maximum_object_size 20480 KB
# timeouts
# forward_timeout 10 seconds
# connect_timeout 10 seconds
# read_timeout 10 seconds
# write_timeout 10 seconds
# client_lifetime 59 minutes
# request_timeout 30 seconds
half_closed_clients off
#
forwarded_for delete
dns_v4_first on
ipcache_size 4096
dns_nameservers 223.5.5.5, 114.114.114.114
# error page
cache_mgr admin@example.com
visible_hostname example.com
email_err_data off
err_page_stylesheet none

启动测试

使用sytemctl启动squid服务

systemctl restart squid.service

使用curl,这里需要使用客户端证书

curl --proxy-cacert /cert/ca.crt -x https://example.com:10251 http://baidu.com

注意:在chrome需要把ca.crt导入到chrome的受信任根证书目录,否则会报ERR_PROXY_CERTIFICATE_INVALID错误。 

版权声明:著作权归作者所有。

相关推荐

Java HTTP代理设置以及认证

代理设置java http/https设置代理有两种方式:使用系统属性设置以及使用Proxy设置。使用系统属性设置代理String PROXY_HOST = "127.0.0.1";//代理服务器地址 String PROXY_PORT = "80";//代理服务器端口   //HTTP代理 System.setProperty("http.proxyHost", PROXY_HOST); Sy

使用Node.js实现一个简单的web服务器

这是使用Node.js写的一个简单Web服务器示例,分为三部分:响应http请求路由url读取静态文件响应新建一个app.js文件作为此web服务器的入口。响应http请求首先我们引入http模块,创建一个http服务器。const http = require('http'); const hostname = '127.0.0.1'

Spring Boot设置服务器的端口

Spring Boot默认内嵌的web服务器为tomcat,端口为8080。如果想修改内嵌tomcat插件的端口有三种方式:在application.properties里修改在java的启动脚本里设置在java代码里设置在application.properties设置server.port=9999 如果是application.yml,设置如下:server:  &nbs

在Mac OSX给Apache的localhost配置SSL

这是在Mac上给Apache的localhost配置ssl的过程及指令。配置SSL的环境:Apache 2.4.16,OSX El Capitan (10.11.2) Apache SSL配置1、在目录/etc/apache2/下新建ssl目录:sudo mkdir /etc/apache2/ssl 2、生成两个主机密钥:sud

Nginx配置代理gRPC

Nginx 1.13.10新增了对gRPC的原生支持。本文介绍如何配置Nginx的gRPC。安装NginxNginx版本要求:1.13.10。gRPC必须使用HTTP/2传输数据,支持明文和TLS加密数据,支持流数据的交互。这是为了充分利用 HTTP/2 连接的多路复用和流式特性。所以在安装部署nginx时需要安装http/2。使用源码安装,编译时需要加入http_s

查看lantern代理地址以及端口

lantern的代理端口不是浏览器地址栏上的地址,它隐藏在设置中。操作如下:右键工具栏中lantern图标 选择显示蓝灯,浏览器会打开页面在页面左上角展开菜单选择设置,弹出设置框点击设置中的高级设置,既可以看到lantern的代理地址和端口了。如图:

Kafka集群搭建

Kafka介绍 Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。 支持通过kafka服务器和消费机集群来分区消息。 支持Hadoop并行数据加载。 Kafka的目的是提供一个

Linux vim编辑器的配置及使用

Linux自带的编辑器有nano和vi,但vi编辑器使用起来很不方便,我们需要先下载vim编辑器,它是vi编辑器的升级版,更人性化些,接下来笔者就教大家如何在树莓派系统下安装和配置vim。安装更新apt源:sudo apt-get update安装vim编辑器:sudo apt-get install vim未配置vim时文档的显示无高亮,无行号,必须使用shift+:在命令模式下q退出。vim编

使用docker-compose搭建配置RabbitMQ

文中RabbitMQ的版本是:RabbitMQ 3.9。配置RabbitMQ Servcer1. 创建rabbitmq目录mkdir rabbitmq在目录rabbitmq创建rabbitmq server配置文件rabbitmq.conf 和 definitions.json。2. 编辑rabbitmq.confvim rabbitmq.confrabbitmq.conf这里主要设置两个参数:l