安装Stunnel来实现正向代理邮件
文:铁乐与猫
2017年8月
一开始我是使用yum install来安装stunnel的
感觉版本低点也无所谓,毕竟只是拿来加密代理一下邮件收发。
可是后来发现之前下载的最新官网版本的tar包里有很多方便的tools工具,而yum安装的并没有,很不方便,
另外考虑到到时候windows客户端的安装,还是同一版本比较好,所以换回卸载旧版本的用编译安装(windows平台的有下相应的安装包)
cd 进解压后的原代码安装包
./configure 运行编译,如果你想指定安装位置也可以自行加上参数--prefix=/usr/local/stunnel 之类
make
make install
进入到源代码包的tools子目录下运行make cert来生成密钥,相当于运行
openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem
(不过直接敲的话你得指定好stunnel.cnf和openssl)所以还是推荐像官网说的用make cert。
如果不用make cert 的繁琐步骤参考:
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 使用的配置文件 (路径最好指定,所以这个就体现了在tools子目录下敲make cert的方便之处了)
-out stunnel.pem
把 SSL 证书写到哪里(同样,这里如果用make cert的还会自动替你将pem复制到/usr/local/etc/stunnel下)
-keyout stunnel.pem
把 SSL 证书放到这个文件中
之后将会问你以下问题(请根据自己的情况回答):
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
注意:Common Name (FQDN) 应该是运行 stunnel 机器的主机名。如果你能通过不同的主机名访问这台机器,有些 SSL 客户会警告这个主机的证书有问题,所以最好是使它和用户访问的主机名匹配。
openssl gendh 512 >> stunnel.pem
这将生成 Diffie-Hellman 部分, 追加到 pem 文件中。这个只有在你指定 stunnel 使用 DH 才需要。
openssl x509 -subject -dates -fingerprint -in stunnel.pem
这个命令是将你的证书信息在屏幕显示出来。
配置/运行 Stunnel
Stunnel 默认配置文件是 stunnel.conf,编译安装的时候,目录下已有样例模板,直接复制出来就行了:
cp /usr/local/etc/stunnel.conf-sample stunnel.conf
当然模板配置要根据自己的实际情况再进行修改。
我这边主要是用于做邮件加密(变相的做邮件正向代理),所以大致将关于mail的配置修改:
(后补:要在server块做设置,这个作为客户端的不用改!)
后面看到还有server块的,有可能是直接在server块改……
启动服务的时候也出现问题,stunnel这个原有的不能使用,报错不知道命令的参数;
后来生成的stunnel3看样子倒是能,只是报需要证书,有可能与我配置文件注释掉了那些cert有关。
大胆尝试,将之前的修改的配置注释掉,修改server区块的如图下:
(后补:注---上图配置ssmtp的时候是错误的,应该为smtp.mxhichina.com:25才对!)
结果还是不行,后来想了想,可能是因为编译安装的,需要直接指定conf文件的路径!
终于搞明白,还是要用回stunnel这个程序,stunnel3这个是另外模式的。
这样一来,我对编译安装的软件启动运行之类算是更深刻了。
其实前面nginx和redis也是同理,只是那个时候还不深刻,照着文档来做,没有去消化理解到。编译和yum安装的这方面不同。
正确启动方法:/usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
(运行脚本、指定配置文件)
做好服务端的了,就要去另外一台win平台上安装客户端(其实就是同一套,只是配置文件里设置成客户模式)来做测试了。
在win平台上安装foxmail7.2测试,收发邮箱服务器设置的是stunnel的这台服务器。
然而测试的效果是能收不能发。
现在初步怀疑,是不是发件服务器,也就是stunnel也在的服务器上也要安装邮件服务器来作为代发送?
注意,收件服务器要勾选SSL端口才行,然后端口就是stunnel设置监听的1110端口,它会帮忙收邮件加密传送回win上的foxmail。
我检查了一下stunnel的配置文件,发现我将smtp服务器的地址给填错了……正确的如下:
将之前的stunnel服务给kill 进程pid号停掉后,再指定配置文件启动。
再测试就成功可以发件了。
END
安装Stunnel来实现正向代理邮件的更多相关文章
- [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...
- nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
前言一.nginx简介1. 什么是 nginx 和可以做什么事情Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50 ...
- nginx或者squid正向代理实现受限网站的访问
项目背景:公司商务同事需要操作合作方的后台,但是这个后台做了限制(安全考虑只对指定IP放行),刚好公司是adsl拨号,经常更换IP 需求:让商务同事不要经常给IP到合作方去添加白名单 于是想到了做正向 ...
- 正向代理/反向代理理解、Nginx概述、安装及配置详解
一.Nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理, ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- 安装ATS(apache traffic server)正向代理
一 traffic server简介 Traffic Server是一种高性能Web代理缓存,可通过在网络边缘缓存频繁访问的信息来提高网络效率和性能.这使内容在物理上更接近最终用户,同时实现更快的交付 ...
- python之squid实现免费 IP代理 (windows win7 单机 本机 本地 正向代理 区分 HTTPS)
0.目录 1.思路2.windows安装3.相关命令行4.简单配置和初步使用5.问题:squid是否支持HTTPS6.问题:配置多个代理条目,相同ip不同port报错7.问题:根据代理请求区分HTTP ...
- Nginx详解(正向代理、反向代理、负载均衡原理)
Nginx配置详解 nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行 ...
- 用ccproxy + stunnel做个加密代理
https://www.stunnel.org/downloads.html ccproxy + stunnel做个加密http代理和socks5代理 目前国内用户无法访问某些国外网站,如http:/ ...
随机推荐
- Zookeeper初见
这是Zookeeper学习总结 的系列文章. ZK简介 ZK部署及运行 ZK的常用API 创建会话 创建节点 删除节点 读取数据节点 更新数据 检测节点是否存在 ZK的开源封装
- 学习angualr之前需要了解的typeScript知识
官网 : www.typescriptlang.org 1.编译型语言 2.强类型语言 3.真正的面向对象的语言: 有借口.有泛型.有枚举.有访问修饰符 AMD类型的面向对象的语言 npm ...
- java SE 入门之八大内置基本类型(第二篇)
本文采用eclipse 工具演示,如果您对eclipse 工具不了解,请先学习下 eclipse 工具的使用,这个里面只是简单的介绍下输出和注释: 安装完成eclipse 以后,双击进入 后一次点击 ...
- [转] PHP读取HTTP接口如何处理超时
原文地址:https://www.jianshu.com/p/446ea7aaea86 最近在工作中遇到一个读取 HTTP 接口慢的问题(使用的是 PHP 服务器端语言),所以想谈谈服务器端读取外部资 ...
- 关于Java中语句符号及格式的理解
关于Java中语句符号及格式的理解 这篇文章是撰写的第一篇文章,在此作一下博主是一名在读的工科研究生,种种原因,研二开始决定转行从事程序员工作.开始的自学之路并不算非常顺畅,也走了一点弯路,但一直都坚 ...
- SpringBoot+thymelates入门
在pom.xml当中加入这俩个依赖 <dependency> <groupId>org.springframework.boot</groupId> <art ...
- DOS窗口带jar包运行java程序
由于工作环境的问题,有过一次这样的测试,需要在DOS窗口运行带有jar包的java程序 编译命令如下: javac -Djava.ext.dirs=./lib Test.java 或 javac -D ...
- Spring Boot的快速创建
一.利用向导快速搭建Spring Boot应用 创建一个controller package com.hoje.springboot.Controller; import org.springfram ...
- Java springmvc 统一异常处理的方案
前言:为什么要统一异常处理?经常在项目中需要统一处理异常,将异常封装转给前端.也有时需要在项目中统一处理异常后,记录异常日志,做一下统一处理. Springmvc 异常统一处理的方式有三种. 一.使用 ...
- IntelliJ IDEA创建spring-boot项目
开发环境: jdk版本:JDK8 maven版本:maven-3.5.2 开发工具:Itellij IDEA 2017.1 前提条件:已安装以上软件并配置好jdk和maven的环境变量 创建步骤: 点 ...