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

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

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

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

第二部分: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来完成工作。

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配置与使用方式一例的更多相关文章

  1. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

  2. Linux下安装与配置Nginx

    一.准备 Nginx版本:nginx-1.7.7.tar.gz   请自行到官网下载对应的版本. 二.步骤 ♦在Linux新建一个queenLove用户 [root@localhost /]# use ...

  3. linux下软件安装的几种方式

    linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

  4. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  5. VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)

    准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...

  6. PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩 &&搞个鸡巴毛,写少了个‘/’号,浪费了一天

    PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有 ...

  7. Linux 下网卡参数配置

    目录 Linux 下网卡参数配置 第一种:修改 interfaces 文件 网卡配置实例 回环参数配置 DHCP方式配置 静态 IP 地址分配 无线网卡配置 March 17, 2015 7:48 P ...

  8. Linux下PortSentry的配置

    Linux下PortSentry的配置       前年写过<IDS与IPS功能分析>一文,受到广大读者关注,现将近期有关IDS配置的文章和大家分享.    Internet上的服务器一般 ...

  9. Linux下实现文件共享配置[samba]

    Linux下实现文件共享配置[samba] 第一步:安装samba软件 1.命令:rpm –q samba #查询是否已安装sambayum install samba #使用yum源安装samba, ...

随机推荐

  1. 在iPhone上取消APP订阅

    1.在iPhone上打开APP Store,在精品推荐那个界面滚动到底部. 2.点击Apple ID那一栏,如图: 3.点击查看Apple ID,如图: 4.点击管理,如图: 5.关掉此选项,如图: ...

  2. Java静态static工具类线程安全问题研究

    针对静态方法有以下一些前提: 静态方法和实例方法的区别是静态方法只能引用静态变量,静态方法通过类名来调用,实例方法通过对象实例来调用 每个线程都有自己的线程栈,栈与线程同时创建,每一个虚拟机线程都有自 ...

  3. JavaScript 的闭包用于什么场景

    本文翻译自 MDN ( Mozilla Developer Network ): 原文地址:MDN 译文地址:shixinzhang 的博客 读完本文你将了解到: 词法作用域 闭包 闭包实战场景之回调 ...

  4. 【spring data jpa】jpa中使用in查询或删除 在@Query中怎么写 ,报错:org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'goodsConfigUid' cannot be found on null 怎么处理

    示例代码如下: @Modifying @Transactional @Query("delete from GoodsBindConfigMapping gbc " + " ...

  5. javascript正则表达式(regular expression)

    一种字符串匹配的模式,用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等.注意:在javascript中正则表达式也是一种对象1:创建正则表达式两种方式:隐式创建( ...

  6. 剪切Postscript图片中的多余边框

    最近用plplot画图,其cairo ps库生成的ps图片总是不能合理地剪切掉多余的边框,于是乎自己写了一个小脚本epscrop,用修改ps图的BoundingBox. #!/bin/bash # c ...

  7. Python 自用代码(拆分txt文件)

    现有一个28G的txt文件,里面每一行是一个分词过的专利全文文档,一共370多万行.我需要把它按每五万行为单位做成一个json文件,格式大致如下: [{"id":"100 ...

  8. 各大网站css初始化代码【转】

    文章来源:http://blog.sina.com.cn/s/blog_71ed1b870101a52w.html 腾讯QQ官网(http://www.qq.com)样式初始化 body,ol,ul, ...

  9. XP如何安装字体

    1 点击控制面板,选择外观和主题,然后在左侧菜单中选择字体 2 点击文件,安装新字体选择驱动器和文件夹以找到自己下载的字体文件位置(如微软雅黑.ttf)点击确定之后可以安装.

  10. Odoo8在TreeView左上角增加自定义按钮以及通过继承生成自定义的View_Mode

    今天有网友在问怎么在TreeView左上角增加一个自定义的按钮,在查询Odoo 自带的模块,发现在purchase_requisition中有使用,并且此模块还应用到了自定义View_Mode的情况, ...