2017-06-13 700 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