linux下使用Stunnel配置与使用方式一例

摘要:
stunnel服务方式需要一个证书文件。stunnel在SSLHttpProxy服务器是以服务方式运行的,所以必须要有一个证书。在windows下通过openssl.exe创建服务器证书,在linux下使用openssl来完成工作。这个只有在你指定stunnel使用DH才需要,但默认是不用的。

第一部分:stunnel的安装与配置

注:在ubuntu下,stunnel的安装很简单快捷。

在synaptic(安立得工具系统下可以直接选举安装)

linux下使用Stunnel配置与使用方式一例第1张

在服务器环境下,直接使用apt-get install stunnel4即可。

linux下使用Stunnel配置与使用方式一例第2张

第二部分:stunnel的配置

(服务器端和客户端的配置两个方面,stunnel客户方式不需要证书。stunnel服务方式需要一个证书文件。)

  1. 服务器侧的配置(server config)

    (编辑:如nano或vi /etc/stunnel/stunnel.conf)

    1. compression=zlib

    2. syslog=yes

    3. debug=7

    4. output=/var/log/stunnel.log

    5. setuid=root

    6. setgid=root

    7. pid=/var/run/stunnel.pid

    8. cert=/etc/stunnel/stunnel.pem

    9. key=/etc/stunnel/stunnel.pem

    10. client=no#注意与客户端一侧的比较

    11. [squid]#这里是为SQUID项目准备

    12. accept=8000

    13. connect=127.0.0.1:8080

    注意事项:setuid需要有可以读写/var/run/stunnel.pid的权限。

    服务侧配置的其它说明:

connect:远程服务器的IP地址和端口?

client:告诉stunnel这个配置是client配置?

cert:连接是提供给对方的安全证书?服务器端发送给客户端的安全认证?因为我们的客户端不验证这个证书,所以使用标准的stunnel证书就可以;

accept:接受连接请求的端口(应该和客户端一致);

verify:验证级别;

1-表示如果客户提供安全证书则验证安全证书?

2-表示客户必须提供安全证书并验证安全证书,此模式适合于从CA处购买的安全证书?

3-表示客户必须提供安全证书并根本本地CAPath和CRLpath来验证证书是否合法,当然多选3。

  1. 客户端一侧的(client) 配置

    (编辑:/etc/stunnel/stunnel.conf,注意与服务器端的比较)

    1. client=yes

    2. pid=/tmp/stunnel.pid

    3. debug=7

    4. foreground=no

    5. verify=0

    6. [squid]#这里是为SQUID项目准备,对应服务器端的配置

    7. accept=127.0.0.1:9999 #接受来自客户端的请求

    8. connect=server-IP:8000

    说明:stunnel客户方式不需要证书。stunnel服务方式需要一个证书文件。

第三部分:Stunnel加密通道认证证书的自建(配置Stunnel.生成Stunnel.pem这个自验证加密文件的过程)

回顾配置Stunnel.conf文件.

cert=stunnel.pem ;#密文

key = stunnel.pem ;#自验证文件

taskbar=yes ;#是否在系统栏显示图标

client=no ;#服务端/客户端选择

[http2ssl] ;#一个服务项目开始

accept = 8384 ;##对外服务端口 ,注意与CONNECT的端口区别

connect = 127.0.0.1:8080 ;##本地连接服务端口

[socks2ssl] ;#另一个服务项目开始,其他同.

accept = 9394

connect = 127.0.0.1:1080

这样,配合客户端的Stunnel就可以进行SSL加密的通讯了.

注:$Stunnel -install#可以把Stunnel安装成服务模式.

如果要生成自己的服务端证书:我们使用OPENSSL来生成我们自己的认证文件。

附:使用openssl来生成主认证书的过程

1)创建服务器证书

说明:stunnel客户方式不需要证书。stunnel服务方式需要一个证书文件。

stunnel在SSL Http Proxy服务器是以服务方式运行的,所以必须要有一个证书。在windows下通过openssl.exe创建服务器证书,在linux下使用openssl来完成工作。

linux下使用Stunnel配置与使用方式一例第3张

openssl生成认证文 件的过程

关于创建stunnel证书的说明如下:

(参考运行下面的命令)

openssl req -new -x509 -days 365 -nodes -config openssl.cnf -out stunnel.pem -keyout stunnel.pem

命令串的作用:这命令将会创建一个签名的证书。

其中参数的含义:

-days 365#使这个证书的有效期是1年,之后失效,借此可用以来发布许可证书。

-new#创建一个新的证书

-x509#创建一个X509证书

-nodes#这个证书没有密码 ,严格的情况下就加密了。

-config openssl.cnf#OpenSSL使用的配置文件

(可能需要修改的有[CA_default]和[req_distinguished_name]这两个section)

-out stunnel.pem#把SSL证书写到哪个文件

-keyout stunnel.pem#把SSL key放到这个文件中(也可以是其它文件)

这个命令串将会问一些问题: (回答示范如下)

Country name PL, UK, US, CA

State or Province name Illinois, Ontario

Locality Chicago, Toronto

Organization Name Bill's Meats, Acme Anvils

Organizational Unit Name Ecommerce Division

Common Name (FQDN) www.example.com

注意:

Common Name (FQDN)应该是运行stunnel机器的主机名。如果你能通过不同的主机名访问这台机器,有些SSL客户会警告这个主机的证书有问题,所以最好是使它和用户访问的主机名匹配。

openssl gendh 512>> stunnel.pem

#这将生成Diffie-Hellman部分,追加到pem文件中。这个只有在你指定stunnel使用DH才需要,但默认是不用的。(实际上留下较好)

openssl x509 -subject -dates -fingerprint -in stunnel.pem

#这个命令是将你的证书信息在屏幕显示出来,你可以在此验证一下。

附:另一个openssl req建立认证证书的例子(本例子用于设立novnc的https访问中用到).

openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

免责声明:文章转载自《linux下使用Stunnel配置与使用方式一例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Multisim中点亮白炽灯基于opencv的手写数字字符识别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用加密的squid配合stunnel实现HTTP代理

现在大部分人都是用ssh tunnel来搭建socks5代理,其实这种方式效率并不高,ssh tunnel并不是为了做代理而存在的。一个比较好的方法是加密squid配合stunnel实现http代理。下面介绍在Archlinux下配置https squid和windows下配置stunnel的方法。 1.首先是Archlinux下安装squid。注意现在...

安装Stunnel来实现正向代理邮件

文:铁乐与猫 2017年8月 一开始我是使用yum install来安装stunnel的 感觉版本低点也无所谓,毕竟只是拿来加密代理一下邮件收发。 可是后来发现之前下载的最新官网版本的tar包里有很多方便的tools工具,而yum安装的并没有,很不方便, 另外考虑到到时候windows客户端的安装,还是同一版本比较好,所以换回卸载旧版本的用编译安装(win...