2017-06-13 434 views
0

我在启用Windows上的TLS 1.2连接(环境同时具有Windows 2008和Windows 10环境)平台时遇到问题。目前,我的私钥由Windows证书存储管理,使用使用OpenSSL 1.0.2k-fips的stunnel(v 5.41)中的CAPI engineId。因此,stunnel只能协商TLS 1.1连接(由于显而易见的原因,SSLv2和SSLv3/TLS1被禁用)。在Windows上配置stunnel和openssl以支持TLS 1.2

我试过编译OpenSSL 1.1.0f和stunnel 5.41,但没有运气在CentOS下交叉编译,也没有在Windows下使用MSYS2/MINGW32或Cygwin编译。

我正在寻找一种方法来管理stunnel中的pfx/p12(私钥),而不诉诸于Windows证书存储。我找到了一个关于如何配置stunnel来使用capi的例子 - 它运行得非常好,但是因为openssl 1.0.2不支持TLS 1.2中使用的密码,所以只有TLS 1.1可以使用。我需要TLS 1.2。

https://www.stunnel.org/pipermail/stunnel-users/2017-February/005720.html文件为什么我不能在OpenSSL 1.0.2中使用TLS 1.2。

OpenSSL 1.0.2是建立在stunnel 5.41中的。重新编译不起作用。我特别在寻找如何将stunnel配置为指向pkcs12密钥。基于dave_thompson_085的评论

+0

经过:https://stackoverflow.com/help/how-to-ask – Gahan

+1

“,但因为OpenSSL的1.0不支持TLS 1.2中使用的密码,只有TLS 1.1有效“。这是不正确的 - openssl 1.0.1支持TLS1.2。 –

+0

你应该针对特定问题提出具体问题。由于Stack Overflow隐藏了Close来自你的理由:*“要求我们推荐或找到书籍,工具,软件库,教程或其他非现场资源的问题与Stack Overflow无关,因为它们倾向于吸引舆论的答案和垃圾邮件,而是要描述问题到目前为止已经做了什么来解决它。“* – jww

回答

0

解决方案:

的解决方案是简单地把在CERT的变量P12文件的位置,不包括ENGINEID,不包括键。不要担心密码,stunnel会提示输入密码。

我一直在想我需要设置一个引擎 - 与pkcs11或capi一样。

也就是说,我在想,完全错过了这个明显的。

以下适用于我的代码段示例。 (以上各项被留下作为默认值,除了sslOptions,将其设定为sslOptions = TLS1.2

[https-test-services] 
client=yes 
accept=127.0.0.1:7000 
connect=hostname.of.remote.server:8443 
verifyChain = yes 
CAfile = ca-certs.pem 
cert = C:\Location\To\certandkey.p12 
checkHost = hostname.of.remote.server 
OCSPaia=yes