Stunnel 加密通道的架设指南

| |
[不指定 05/31/2007 12:12 | by liuxyon ]
Stunnel是一个自由的跨平台软件,用于提供全局的TLS/SSL服务。

针对本身无法进行TLS或SSL通信的客户端及服务器,Stunnel可提供安全的加密连接。该软件可在许多操作系统下运行,包括Unix-like系统,以及Windows。Stunnel依赖于某个独立的库,如OpenSSL或者SSLeay,以实现下面的TLS或SSL协议。

Stunnel由Michal Trojnara 和 Brian Hatch负责维护,遵照GNU通用公共许可证进行发布


官方网站,http://stunnel.mirt.net
Stunnel FAQ以及下载,http://www.stunnel.org



up/stunnel-4.20-installer.rar


在普通模式下很简单.(不用远程TELNET那么偷偷摸摸)  

首先用CCPROXY架设一个本地代理,服务项目和端口都可以随意设定,以HTTP和SOCKS为例,分别开在8080和1080端口;唯一注意的是一定要选中"不允许局域网外部连接",防止无聊的人来猜密码.  
在用户里面可以选择用户/密码这种验证方式.  

然后就是配置Stunnel.生成Stunnel.pem这个自验证加密文件的过程我就省略了,请大家参考OPENSSL相关文档.需要修改的只有Stunnel.conf这个文件.  

cert=stunnel.pem ;密文  
key = stunnel.pem ;自验证文件  
taskbar=yes ;是否在系统栏显示图标  
client=no ;服务端/客户端选择  
[http2ssl] ;一个服务项目开始  
accept = 8384 ;对外服务端口  
connect = 127.0.0.1:8080 ;本地连接服务端口,也就是前面CCPROXY开的端口  
[socks2ssl] ;另一个服务项目开始,其他同上.  
accept = 9394  
connect = 127.0.0.1:1080  

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

Stunnel -install  

可以把Stunnel安装成服务模式.  

如果要生成自己的服务端证书,请下载OPENSSL包并参考以下内容:  

创建服务器证书  

stunnel 客户方式不需要证书。stunnel 服务方式需要一个证书文件。  
stunnel 在 SSL Http Proxy 服务器是以服务方式运行的,所以必须要有一个证书。通过 openssl.exe 创建服务器证书。下面我将 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 证书放到这个文件中  

这个命令将会问你以下问题:  
问题的回答示范  
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  
这个命令是将你的证书信息在屏幕显示出来。
Technology | 评论(0) | 引用(0) | 阅读(2065)