当前位置: 首页 > 工具软件 > stunnel > 使用案例 >

Windows系统Stunnel使用简介

陆俭
2023-12-01

**

Windows系统Stunnel使用简介

**
一、什么是Stunnel
Stunnel是一个代理,可以运行在多种UNIX和Windows操作系统之上。用于向现有客户机和服务器添加TLS加密功能,而不需要对程序代码进行任何更改。它的体系结构针对安全性、可移植性和可伸缩性(包括负载平衡)进行了优化,使其适合于大型部署。
二、Stunnel的功能
1.针对本身无法进行TLS或SSL通信的客户端及服务器,Stunnel可提供安全的加密连接(基于OpenSSL);
2.针对有访问限制的局域网,Stunnel提供加密的SSL连接解除防火墙和代理的限制直接和远端服务器理论上的任何网络服务连接。一般局域网都会开放443端口用于加密的HTTP连接,我们可以利用这点用Stunnel和远程端口443创建SSL连接,防火墙和代理会认为这个连接是HTTPS连接而允许通过。
三、Stunnel和OpenSSL的关系
Stunnel是基于OpenSSL的,所以他要求已经安装了OpenSSL,并进行了正确的配置。Stunnel是开源的。Stunnel的源代码并非是一个完整的产品,因为它是基于OpenSSL的,编译和运行它,需要有一个SSL库比如OpenSSL。也就是说,Stunnel能支持所有SSL或TLS库所支持的。
四、Openssl生成安全证书

  1. 生成安全证书的方法有以下三种:
    (1)Stunnel安装程序自带的(stunnel\stunnel.pem)
    (2)OpenSSL成生的安全证书
    (3)从CA处购买的安全证书
    一般来说不推荐方法一,因为通用性的Stunnel安全证书不能提供任何安全保证,因为人人都可以下载获得。而最安全的第三种方法需要花费不少金钱,因此这里我们使用方法二,在不花钱的情况下得到最佳的安全性。
  2. 用Openssl生成安全证书
    (1) 打开stunnel\bin\openssl.exe
    (2) 输入命令:req –new –x509 –days 365 –nodes –config openssl.cnf –out stunnel.pem –keyout stunnel.pem
    Stunnel.pem是自定义生成的安全证书的名字,其他各个参数的意义如下
    ◆ -new:生成新的密匙
    ◆ -x509:生成X509安全证书
    ◆ -days 365:有效期1年
    ◆ -nodes:不设置密码
    ◆ -out:生成的文件名
    ◆ -keyout:存放密匙的文件名

(3)自定义证书
Country Name (2 letter code) [GB]: 国家代码 PL, UK, US, CA…
State or Province Name (full name) [Berkshire]: 省
Locality Name (eg, city) [Newbury]: 市
Organization Name (eg, company) [My Company Ltd]: 公司、组织名称
Organizational Unit Name (eg, section) []:部门名称
Common Name (eg, your name or your server’s hostname) []:Common Name (FQDN) 应该是运行 stunnel 机器的主机名。如果你能通过不同的主机名访问这台机器,有些 SSL 客户会警告这个主机的证书有问题,所以最好是使它和用户访问的主机名匹配。
Email Address []:邮箱地址
五、Stunnel的使用
1.下载安装stunnel
1.stunnel官方Windows版本下载地址:https://www.stunnel.org/downloads.html。
2.选择”stunnel-X.XX-installer.exe“并且安装到一个“可写”的位置,因为Windows Vista/7/8系统里如果安装到C:\Program Files或者C:\Program Files (x86),会无法写入配置、日志或者不方便放置用户的证书,因此建议安装到其他地方。
2.配置stunnel (文件:stunnel\config\stunnel.conf)
1.必须
指定证书文件:
Cert = stunnel.pem 密文
Key = stunnel.pem 自验证文件
这个证书文件就是客户端Stunnel和服务端Stunnel互相验证的“密码”,请务必妥善保存。只有有这个证书的双方才可以通过SSL加密通信,第三方将无法看到任何信息。

客户端模式:
client= no ;关闭stunnel的客户端模式
client= yes;开启stunnel的客户端模式

配置服务项:
Client端:
[http2ssl] ;应用服务名称
accept = 8080 //这里为浏览器代理的http端口
connect = 服务器地址:10086 //这里的端口为上面服务器设置的连接端口

[socks2ssl] ;应用服务名称
accept = 8092 ; 这里为浏览器代理的socks端口
connect = 10.243.141.7:7071 ; 远程服务器的IP地址和端口

Server端:
[http2ssl] ;应用服务名称
accept = 10086 ;这里为stunnel客户端连接的http端口
connect = 127.0.0.1:8080 ;这里为服务器的http端口

[socks2ssl] ;应用服务名称
accept = 7071 ; 这里为stunnel客户端连接的socks端口
connect = 127.0.0.1:8092 ; 本地服务器的IP地址和端口
CApath =
2.其他:
output = stunnel.log ; 指定的日志文件
taskbar=yes ;是否在系统栏显示图标
CAfile为CA证书,不需要,可不配置。
debug = 7 ; 初次使用建议debug level设置为7,调试正常后,可以修改为默认的5或更小的数字。
verify:验证级别;
(1)-表示如果客户提供安全证书则验证安全证书?
(2)-表示客户必须提供安全证书并验证安全证书,此模式适合于从CA处购买的安全证书?
(3)-表示客户必须提供安全证书并根本本地CAPath和CRLpath来验证证书是否合法。
保存配置文件后。双击安装目录里的stunnel.exe就开始运行了,如果一切正常,双击运行后不会有窗口出现,而是 在系统托盘栏出现一个stunnel的图标。右键点击这个图标可以查看程序日志、重启服务、退出等操作。如果出现错误,可以查看日志文件排查问题。测试正 常后,就可以配置Windows启动后自动运行“C:…\stunnel\bin\stunnel.exe”,这样就不用去管它了。

 类似资料: