Stunnel使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stunnel使用相关的知识,希望对你有一定的参考价值。
建立加密隧道
使用 Stunnel 建立加密隧道
附件中的 Server 和 Clinet 都是已经配置好了的,只需修改 Server 的 stunnel.conf 的 connect 为实际的ip和端口即可投入使用,但是建议stunnel由自己重新生成一个以保安全。
假设你已经使用代理软件架设好了代理服务器,端口为 6700 (附带的 Stunnel.conf 设置的就是这个端口,你可以根据自己的需要修改)。
如果要启用客户端密码验证可以在代理软件中设置。
要通过 Stunnel 建立加密隧道则需要做以下的工作
1、创建服务器证书( 原文可见 http://www.stunnel.org/faq/certs.html#ToC5 )
Stunnel 服务方式需要一个证书文件。通过 openssl.exe 来创建服务器证书。
具体命令为
[ 复制 ] [ 运行 ] [ 另存为 ]
openssl req -new -x509 -days 365 -nodes -config openssl.cnf -out stunnel.pem -keyout stunnel.pem
这将会创建一个自己给自己签名的证书。参数的含义:
-days 365
使这个证书的有效期是 365 天,之后它将不能再用。
-new
创建一个新的证书
-x509
创建一个 X509 证书(自己签名的)
-nodes
这个证书没有密码
-config openssl.cnf
OpenSSL 使用的配置文件
-out stunnel.pem
把 SSL 证书写到哪里
[ 复制 ] [ 运行 ] [ 另存为 ]
-keyout stunnel.pem
把 SSL 证书放到这个文件中
这个命令将会问你以下问题(请根据自己的情况回答):
[ 复制 ] [ 运行 ] [ 另存为 ]
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SiChuan
Locality Name (eg, city) []:Chengdu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:PRCJQ
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.example.com
Email Address []:[email protected]
注意:Common Name (FQDN) 应该是运行 stunnel 机器的主机名。如果你能通过不同的主机名访问这台机器,有些 SSL 客户会警告这个主机的证书有问题,所以最好是使它和用户访问的主机名匹配。
[ 复制 ] [ 运行 ] [ 另存为 ]
openssl gendh 512 >> stunnel.pem
这将生成 Diffie-Hellman 部分, 追加到 pem 文件中。这个只有在你指定 stunnel 使用 DH 才需要。
[ 复制 ] [ 运行 ] [ 另存为 ]
openssl x509 -subject -dates -fingerprint -in stunnel.pem
这个命令是将你的证书信息在屏幕显示出来。
2、配置/运行 Stunnel
Stunnel 默认配置文件是 stunnel.conf
下面是服务方式配置文件内容示范:
[ 复制 ] [ 运行 ] [ 另存为 ]
# 使用服务器模式
client = no
key = stunnel.pem
cert = stunnel.pem
# 隐藏 Stunnel 的托盘图标(值为 no 时隐藏)
taskbar = yes
# 将代理服务器提供的端口加密映射成本机端口
[HTTP2SSL]
# 客户端连接的端口
accept = 8080
# 代理服务所在的IP及提供的端口
connect = 127.0.0.1:6700
含义:使用 stunnel.pem 证书,将 127.0.0.1:6700 的端口加密映射成本机 8080 端口,HTTP2SSL 是标识名,可以改成其他的标识。
直接运行stunnel-4.11.exe,就可以服务器方式启动 Stunnel 了。
3、将Stunnel 安装成 MS NT 服务方式(可选)
在 Stunnel 所有设置完成后,测试完毕后即可将 Stunnel 安装为服务。
运行 stunnel-4.11.exe -install 将会安装成服务。
运行 net start stunnel 启动 stunnel 服务。
运行 net stop stunnel 停止 stunnel 服务。
运行 stunnel-4.11.exe -uninstall 卸载 stunnel 服务。
注意:即使是 MS NT 服务方式启动,当启动 stunnel 4.11 服务的时候,在托盘还是有 Stunnel 的图标。不想托盘有 Stunnel 的图标,可以在 Stunnel.conf 里设置 taskbar = no
4、Stunnel 服务器配置好后即可以使用 Stunnel 客户端连接到 Stunnel 测试了。
Stunnel 服务器和客户端的区别仅在 stunnel.conf 的配置不同而已。
下面是客户方式配置文件内容示范:
# 使用客户模式
[ 复制 ] [ 运行 ] [ 另存为 ]
client = yes
[SSL2HTTP]
accept = 127.0.0.1:8888
connect = 127.0.0.1:8080
含义:使用客户方式方式,将 127.0.0.1:8080 的端口解密映射成本机 8888 端口,SSL2HTTP 是标识名,可以改成其他的标识。
accept设置为127.0.0.1:8888,只允许127.0.0.1--本机使用这个 8888 端口代理,禁止了其他人使用你的机器作代理。
直接运行stunnel-4.11.exe,就可以以客户方式启动 Stunnel 了。
5、设置浏览器的代理地址
浏览器的代理地址设置为 127.0.0.1 端口设置为 accept 中设置的值。即可通过 Stunnel 实现加密代理访问。
以上是关于Stunnel使用的主要内容,如果未能解决你的问题,请参考以下文章