Настройка stunnel и openssl в Windows для поддержки TLS 1.2

У меня проблемы с включением подключений TLS 1.2 на платформе Windows (в среде есть среды как Windows 2008, так и Windows 10). В настоящее время мои личные ключи управляются хранилищем сертификатов Windows с использованием идентификатора механизма CAPI в stunnel (v 5.41), который использует OpenSSL 1.0.2k-fips. Из-за этого stunnel может согласовывать только соединение TLS 1.1 (SSLv2 и SSLv3 / TLS1 отключены по очевидным причинам).

Я пробовал скомпилировать OpenSSL 1.1.0f и stunnel 5.41, но не повезло ни с кросс-компиляцией под CentOS, ни под Windows с использованием MSYS2 / MINGW32 или Cygwin.

Я специально ищу способ управлять pfx / p12 (закрытым ключом) в stunnel, не прибегая к хранилищу сертификатов Windows. Я нашел пример того, как настроить stunnel для использования capi, который отлично работал, но поскольку openssl 1.0.2 не поддерживает шифров, которые используются в TLS 1.2, работает только TLS 1.1. Мне нужен TLS 1.2.

https://www.stunnel.org/pipermail/stunnel-users/2017-FebFebruary/005720.html документирует, почему я не могу использовать TLS 1.2 с OpenSSL 1.0.2.

OpenSSL 1.0.2 - это то, что встроено в stunnel 5.41. Перекомпиляция не сработала. Я специально ищу, как настроить stunnel, чтобы он указывал на ключ pkcs12.


person Liz Turi    schedule 13.06.2017    source источник
comment
пройти: stackoverflow.com/help/how-to-ask   -  person Gahan    schedule 13.06.2017
comment
но поскольку openssl 1.0 не поддерживает шифров, которые используются в TLS 1.2, работает только TLS 1.1. Это неверно - openssl 1.0.1 поддерживает TLS1.2.   -  person Matt Caswell    schedule 13.06.2017
comment
Вы должны задать конкретный вопрос для конкретной проблемы. Поскольку Stack Overflow скрывает от вас причину закрытия: Вопросы, просящие нас порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой сторонний ресурс, не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано для ее решения.   -  person jww    schedule 13.06.2017
comment
Мэтт - OpenSSL 1.0.2 поддерживает TLS1.2, но есть конфликт с механизмом capi в 1.0.2, который требуется для доступа к ключу / сертификату в диспетчере сертификатов Windows, что не позволяет мне использовать TLS 1.2: stunnel.org/pipermail/stunnel-users/2017-Feb February/005720.html   -  person Liz Turi    schedule 13.06.2017
comment
jww - спасибо - изменил структуру вопроса   -  person Liz Turi    schedule 13.06.2017
comment
В журнале изменений на веб-сайте stunnel говорится, что поддержка P12 была добавлена ​​в 5.33 2016.06.23, а на странице руководства написано, что нужно просто поместить ее в cert=; до этого (и после) заданный P12 openssl pkcs12 преобразуется в PEM, с которым может справиться любой openssl (и stunnel) обратно в oughties.   -  person dave_thompson_085    schedule 13.06.2017
comment
Дэйв, ты можешь сформулировать свой ответ как ответ? Спасибо!   -  person Liz Turi    schedule 13.06.2017
comment
@Liz - Поместите ответы в блоки ответов. Пожалуйста, не добавляйте их к вопросу. Вы можете принять свой ответ. Вот как работает Stack Overflow. Также см. Примите свои ответы.   -  person jww    schedule 13.06.2017


Ответы (1)


Решение, основанное на комментарии dave_thompson_085:

Решение заключалось в том, чтобы просто указать местоположение файла 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
person Liz Turi    schedule 15.06.2017