当前位置:首页 > 开发教程 > 手机开发 >

具有相互验证一个简单的SSL / TLS代理为确保非TLS服务

时间:2016-02-16 11:31 来源:互联网 作者:源码搜藏 收藏

Ghostunnel是用于保护非TLS后端的应用程序相互认证支持简单的SSL / TLS代理。 Ghostunnel运行在一个后端服务的前部和接受TLS安全连接,然后将其代理到(不安全)的后端。 后端可以是TCP域/端口或UNIX套接字路径。 换句话说,ghostunnel为在服务器模式Stunnel

Ghostunnel是用于保护非TLS后端的应用程序相互认证支持简单的SSL / TLS代理。Ghostunnel运行在一个后端服务的前部和接受TLS安全连接,然后将其代理到(不安全)的后端。后端可以是TCP域/端口或UNIX套接字路径。换句话说,ghostunnel为在服务器模式Stunnel的一个非常有限的更换。

特征

认证/访问控制:Ghostunnel通过始终需要一个有效的客户端证书强制相互验证。我们也支持通过一个客户端证书主题的CN / OU领域的检查,访问控制。这是用于限制到不具有本地访问控制服务的访问是有用的。

证书热交换进行:Ghostunnel可以重新加载在运行时的证书而无需放弃现有的连接。要触发重载,只需发送 SIGUSR1的过程。这将导致ghostunnel重新加载密钥库文件,并打开一个新的监听套接字(通过SO_REUSEPORT)。一旦成功,老监听套接字将被关闭。

自动重新加载:Ghostunnel可以被配置为自动重新加载证书。您可以指定与间隔--timed重装标志。如果启用了定时加载标志,ghostunnel将定期重新加载文件,并检查是否有变化。如果检测到变化,它将尝试使用新的证书/私钥重新加载监听器。

入门

上手玩的实施,则需要生成一些测试证书。如果要引导一个完整的PKI,上手的好方法之一就是使用包像 广场/ certstrap如果你只需要与隧道玩弄一些测试证书,你可以找到一些预先生成的那些测试键目录(一起就如何生成OpenSSL的新的指令)。

建立

要构建ghostunnel并运行测试:


make build
make test

要更新vendored依赖关系:


make update-depends

发射

这是如何启动ghostunnel监听传入连接一个简单的例子本地主机:8443转发他们到本地主机:8080我们假设server.p12是PKCS12密钥存储的证书和私钥的服务器,以及root.crt中包含您的受信任的根证书(S)。

要设置允许客户端,您必须指定的至少一个--allow-ALL, --allow-CN--allow鸥它可以同时使用--allow-CN和 --allow鸥一起或重复指定他们允许多个CN / OU值。在这个例子中,我们假设客户端的CN证书,我们要接受的连接是由客户端

先从服务器证书ghostunnel:


ghostunnel \
    --listen 127.0.0.1:8443 \
    --target 127.0.0.1:8080 \
    --keystore test-keys/server.p12 \
    --cacert test-keys/root.crt \
    --allow-cn client

验证客户端(S)可以与他们的客户端连接证书:


openssl s_client \
    -connect 127.0.0.1:8443 \
    -cert test-keys/client.crt \
    -key test-keys/client.key \
    -CAfile test-keys/root.crt

如果OpenSSL的的s_client.First可以连接,那么隧道应发挥预期!一定要检查的日志,看看传入连接等信息。请注意,在默认情况下ghostunnel日志来stderr和在前台运行(设置--syslog记录到系统日志)。对于deamonization,我们建议使用一个实用工具,如以进程有关如何在泊坞窗容器使用ghostunnel一个例子,看到了码头工人 的子目录。
https://github.com/square/ghostunnel/archive/master.zip


手机开发阅读排行

最新文章