如何配置stunnel以进行SSL连接,然后再连接到其他服务器上的SSL端口?

这是我的设置:

我们的ISP服务器“邮件服务器”支持SSL上的smtp / imap. (不是开始.只是在ssl.)

但是,我有一堆客户机只能信任特定的内部根证书.因此,他们无法连接到“邮件服务器”.

对于这些客户端计算机,我想创建一个专用的“邮件隧道”主机,它使用stunnel监听内部签名的SSL证书,并使用第二个SSL连接将数据转发到“邮件服务器”.

可以这样做吗?

Ubuntu Server 10.10的具体步骤是什么? (我对持久性服务配置不太熟悉.)

谢谢

我不熟悉10.10的细节,但我会假设它与Debian非常接近.

你可以做的一件事,基本上是设置来分离stunnel配置.接受SSL,并将其转发到本地端口,另一个侦听该本地端口,然后与外部主机建立SSL连接.这两个只能绑定到环回接口,因此未加密的数据不会通过网络.请记住,您基本上是在对自己进行MITM攻击.当我帮助诊断一个人正在开发的Web服务时,我使用了这样的设置.

Debian / Ubuntu中的stunnel打包版本应该可以轻松实现.启动脚本基本上会为/ etc / stunnel4中的每个配置文件(* .conf)启动一个stunnel实例.因此,您可以将两个单独的配置放在/ etc / stunnel4中,生成密钥,重新启动stunnel,它应该可以工作.

所以这是第一个接受SSL的配置

; /etc/stunnel/ssl_in.conf
; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/srv1.keys

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4

; PID is created inside chroot jail
pid = /srv1.pid

debug = 4
output = /var/log/stunnel4/ssl_in.log

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

[ssl_in_imap]
accept  = 993
connect = localhost:10993

[ssl_in_smtp]
accept  = 587
connect = localhost:10587

您创建传出连接的第二个实例.

; /etc/stunnel/ssl_out.conf
; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4

; PID is created inside chroot jail
pid = /clt1.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

client=yes
CAfile = clt1.ca
verify = 0


[ssl_out_imap]
accept  = 10993
connect = remote_server:993

[ssl_out_smtp]
accept  = 10587
connect = remote_server:10587

生成服务器的filename.keys.

# Create a new key and preparte a CSR 
openssl req -new -keyout filename.pem -out filename.csr
# Remove the passphrase from the key
openssl rsa -in filename.pem -out filename.key
# Self sign
openssl x509 -in filename.csr -out filename.cert -req -signkey filename.key -days 720
# combine files to get the keys file stunnel needs.
cat filename.key filename.cert > filename.keys

您的文件将如下所示.

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDkwzyKrPRXGyvEgITm/7oC9fDU4Y7L9mtMXmcIR98cp0g1ndcz
...
qhP3y97k67EVdSC+92pIGrAL7kBWckpJ2HP1El4KeZg=
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICHzCCAYgCCQDq/33qh7Dq5TANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJV
...
ebbhvhYLx1KkhD8/dXEbU0+kNg==
-----END CERTIFICATE-----

ubuntu – stunnel:SSL到SSL? (对于smtp / imap)的更多相关文章

  1. ios – 应该加密APNS令牌吗?

    所以,我想知道,因为用户将APNS令牌发送给APNS提供商以便接收推送通知,是否应该加密令牌?另外,我认为根据APNS令牌识别设备是不可能的?因此,我想确保,如果有人从我的一个客户端嗅探推送通知注册...>他仍然必须获得我的推送证书才能以任何方式打扰我的客户>他知道有人对这些信息感兴趣,但无法确定我的客户是谁我可以放心吗?

  2. iOS Enterprise Deployement:单击itms-services链接会导致“无法连接到[域]”错误

    解决方法我有这个问题,这里没有任何记录的解决方案,或者在其他答案中,没有为我工作.使用正确的SSL证书,可以在目标设备上的safari中加载plist,没有任何问题.但是,尝试使用“itms-services://…”链接进行安装将始终失败,并显示“无法连接到[域]”错误.问题是Web服务器上未配置中间SSL证书.Web浏览器没有问题,SSL有效,但将设备连接到Mac,并通过XCode中的设备面板查看日志显示以下错误:在Apache上安装中间SSL证书解决了这个问题.

  3. ios – 我可以使用自签名SSL证书服务器在空中部署企业应用吗?

    iOS7.1之后,如果我们要通过空中部署我们的Enterprise应用程序,则manifest.plist文件的URL必须是HTTPS.例如:在我的服务器中,我使用自签名SSL证书.当我点击iPhone上的URL时,它表示无法连接到并记录典型的所以,我想知道我是否可以使用自签名SSL证书?如果可以,我如何解决我遇到的问题的问题?

  4. Xcode 4 / iOS – 使用SMTP从我的应用程序发送电子邮件

    我一直在寻找一个框架,只需让我从我的应用程序内发送一封电子邮件.我已经尝试过MailCore,Pantomime和SKPSMTP,没有运气.我不能让他们在Xcode中编译,所以我推测他们已经过时了.有什么办法可以做到吗?谢谢.解决方法您可以轻松地从iOS设备发送电子邮件.不需要实现SMTP和所有.在iOS中使用内置电子邮件功能的最佳方法是让您访问通讯录!为了完整起见,如果用户按取消或发送,我必须写这个选择器来关闭电子邮件窗口–快乐编码…

  5. ios – 为什么一些iphone应用程序不会完成与Charles Proxy的ssl握手?

    我正在使用CharlesProxy查看从我的iPhone出来的所有流量.我的iPhone上安装了ssl证书/配置文件,我可以看到很多ssl加密的流量.然而,一些应用程序似乎没有完成ssl握手.错误是:“SSLHandshake:远程主机在握手期间关闭连接”,然后CharlesProxy建议将应用程序配置为信任查尔斯根证书.我以为当我将配置文件安装到我的iphone上时呢?

  6. ios – 获取SSL证书详细信息

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  7. ios – 如何让Charles在SSL连接上使用Xcode 7?

    我遇到了新安装的Xcode7的问题,即使在通过Charles在iOS模拟器上安装SSL证书(帮助>SSL代理>在iOS模拟器中安装CharlesRoot证书),并明确允许服务器的域我在查尔斯查询,任何试图收听SSL流量的尝试都会导致连接失败.Charles报告以下错误:SSLHandshake:RemotehostclosedconnectionduringhandshakeYoumayneedt

  8. 从iOS7迁移后,为什么iOS8 SSL请求会间歇性地失败?

    我的下一步是什么,找出这些请求失败的原因?

  9. iOS 10.3:模拟器HTTPS localhost:SSL错误

    这适用于iOS10.2及更低版本,但升级到10.3后,当模拟器尝试通过HTTPS连接到运行在localhost上的开发服务器时,Xcode控制台会输出以下错误:打印出URLSessionDataTask返回的错误显示:参考:Apple:Developer:GuidesandSampleCode:TechnicalNoteTN2232:HTTPSServerTrustEvaluation要创建自签名

  10. 尝试使用swift mailer,gmail smtp,php发送邮件

    这里是我的代码:在运行时出现此错误…

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部