Почему ADF не может выполнить SSL-рукопожатие с mongodb. net? - PullRequest
0 голосов
/ 06 марта 2020

В течение последних нескольких дней мы получали ошибки во время ежедневного запуска конвейера. Ошибки похожи на это:

Сообщение: сбой произошел на стороне источника. ErrorCode = UserErrorFailedToConnectOdbcSource, 'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Сообщение = Ошибка от клиента MongoDB: не найдено подходящих серверов (serverSelectionTryOnce установлено): сбой рукопожатия TLS: ошибка: 1416F086: процедуры SSL: сертификат-сертификата: сертификат_процедера_процедуры не удалось вызвать ismaster для '.mongodb. net: 27017'

Я могу подключиться к базе данных Mon go, используя Mon go CLI. Я использовал Wireshark, чтобы убедиться, что рукопожатие SSL работает нормально. Это показывает, что сертификат Mon go выдан «Let's Encrypt» (https://letsencrypt.org/). Сертификат Let's Encrypt включен в список сертификатов и выпущен DST Root CA X3, который находится в доверенных сертификатах root на моем компьютере. Интересно, что сертификат Mon go был только что продлен на несколько дней go.

Просто для удовольствия (см. «... проверьте вызов ismaster ...» в сообщении выше), в Конфигурируя конвейер, я обновил набор данных источника данных на «Разрешить самозаверяющий сертификат сервера», и соединение начало работать.

Я установлю этот флаг и разрешу конвейеру работать несколько дней, чтобы посмотреть, исправит ли он его. , Но у меня нет объяснения, почему это будет работать, кроме того, что Azure имеет странный способ реализации SSL.

Есть ли способ увидеть список доверенных сертификатов на сервере Azure? Есть ли способ перехватить пакеты рукопожатия SSL на стороне Azure?

1 Ответ

0 голосов
/ 19 марта 2020

Microsoft предложила обновить тип набора данных MongoDB Collection до MongoDB Collection V2. Трубопровод, с которым я работал, был разработан некоторое время назад. Версия V2 не имеет «Разрешить самоподписанный сертификат сервера». Это оказалось работать для меня, хотя.

...