zoukankan      html  css  js  c++  java
  • Windows系统Stunnel客户端的配置

    Stunnel官方就有Windows版本,到下面的地址下载:
    https://www.stunnel.org/downloads.html

    选择”stunnel-X.XX-installer.exe“并且安装到一个“可写”的位置,因为Windows Vista/7/8系统里如果安装到C:Program Files或者C:Program Files (x86),会无法写入配置、日志或者不方便放置用户的证书,因此本着偷懒和“绿化”的原则,建议安装到其他地方。其实你也可以安装了以后,把整个程序目录复制出来,然后将原始安装卸载。Stunnel就成了一个绿色程序。

    这里假设新建一个目录:C:local,然后把Stunnel软件安装到这里:

    C:localstunnel

    然后,去你的Linux服务器上获取证书文件:/etc/stunnel/stunnel.pem。传输的方法建议是用SCP的方式。Windows上免费的PuTTY系列工具里有一个PSCP程序,就可以用来安全地传输文件。

    下载“putty.zip”工具包:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html(开头几个是单独文件下载,这里直接下载整个ZIP包,就是标示了“A .ZIP file containing all the binaries (except PuTTYtel), and also the help files”的地方)。

    同理解压缩到C:usrlocalputty。打开一个命令行窗口,CD到该目录。

    C:usrlocalputty> pscp root@12.34.56.78:/etc/stunnel/stunnel.pem .


    如果你的SSH服务器端口不是默认的22端口,那么用-P PORT来指定端口(P是大写):

    C:usrlocalputty> pscp -P 12345 root@12.34.56.78:/etc/stunnel/stunnel.pem .

    命令运行后,一般是会要求你确认服务器的指纹是否正确,按“y”回车确认。然后会提示输入密码。密码输入以后就会把文件拷贝到当前目录下。

    如果你配置了SSH服务器不接受密码登陆,而只能用密钥登陆,那么你要先把你的SSH密钥通过PuTTY提供的PUTTYGEN.exe程序导入,然后导出为.ppk格式,接着运行PAGENT.exe,加载这个导出的PuTTY私有格式的密钥。这时运行上述的PSCP命令即可,不需要输入密码。

    扯了半天传输证书的问题,下面就是配置Stunnel了。配置文件是C:usrlocalstunnelstunnel.conf

    一上来我们先配置一下调试日志的选项:

    ; Debugging stuff (may useful for troubleshooting)
    debug = 7
    output = .stunnel.log
    

    同理,初次使用建议debug level设置为7,调试正常后,可以修改为默认的5或更小的数字。“output”指定的日志文件设定为“.stunnel.log”。意思就是在软件安装目录(和stunnel.exe在同一个位置)。

    接下来指定证书文件。就是前面从Linux服务器上传输过来的”stunnel.pem”文件,将这个文件也放在Stunnel安装目录下,然后配置文件里这样写:

    ; Certificate/key is needed in server mode and optional in client mode
    cert = .stunnel.pem
    key = .stunnel.pem

    请注意这里也是用了相对路径。这个证书文件就是客户端Stunnel和服务端Stunnel互相验证的“密码”,请务必妥善保存。只有有这个证书的双方才可以通过SSL加密通信,第三方将无法看到任何信息。

    最后是配置服务项:

    ; Example SSL front-end to a web server
    [https]
    client = yes
    accept  = 8080
    connect = 12.34.56.78:443
    ; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL
    ; Microsoft implementations do not use SSL close-notify alert and thus
    ; they are vulnerable to truncation attacks
    ; TIMEOUTclose = 0
    TIMEOUTclose = 0

    这里假设你的服务器端IP地址是12.34.56.78,服务端Stunnel监听端口为443。而Windows上客户端监听端口为8080,也就是其他程序可以看到你的本地机器上有一个监听在8080端口的HTTP代理服务器。同时注意要指定“client = yes”来打开Stunnel的客户端模式。

    同时遵照注释里的说明,在Windows平台我们将“TIMEOUTclose”设置为0。

    至于其他的服务,则全部用行首添加';’的方式注释掉,或者直接删除即可:

    ; Example SSL server mode services
    
    ;[pop3s]
    ;accept  = 995
    ;connect = 110
    
    ;[imaps]
    ;accept  = 993
    ;connect = 143
    
    ;[ssmtp]
    ;accept  = 465
    ;connect = 25
    
    ; Example SSL client mode services
    
    ;[gmail-pop3]
    ;client = yes
    ;accept = 127.0.0.1:110
    ;connect = pop.gmail.com:995
    
    ;[gmail-imap]
    ;client = yes
    ;accept = 127.0.0.1:143
    ;connect = imap.gmail.com:993
    
    ;[gmail-smtp]
    ;client = yes
    ;accept = 127.0.0.1:25
    ;connect = smtp.gmail.com:465

    保存配置文件后。双击安装目录里的stunnel.exe就开始运行了,如果一切正常,双击运行后不会有窗口出现,而是 在系统托盘栏出现一个stunnel的图标。右键点击这个图标可以查看程序日志、重启服务、退出等操作。如果出现错误,可以查看日志文件排查问题。测试正 常后,就可以配置Windows启动后自动运行“C:usrlocalstunnelstunnel.exe”,这样就不用去管它了。

    最后就是在你的浏览器里配置使用这个代理即可,即代理地址为:127.0.0.1:8080。

  • 相关阅读:
    转:每个架构师都应该研究下康威定律
    使用OpenShiftFQ上外网
    关系模式设计
    数据库应用系统工程过程
    数据库系统
    四种常见 Git 工作流比较
    Git 进阶指南
    C#高性能TCP服务的多种实现方式
    浮动广告
    <span></span>
  • 原文地址:https://www.cnblogs.com/justuntil/p/5194053.html
Copyright © 2011-2022 走看看