MongoDB 4.2.5 Ошибка при получении запроса от клиента: SSLHandshakeFailed: сервер настроен на разрешение только SSL-соединений - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь подключиться к серверу MongoDB из клиентского приложения. У меня включен протокол TLS, и я использую самоподписанный сертификат. Ниже приведены подробности:

OS: Windows Server 2016
MongoDB Version: 4.2.5

mongod.cfg (config file):
net:
   tls:
      mode: requireTLS
      certificateSelector: subject=server1.com
      allowInvalidCertificates: true
      disabledProtocols: none
systemLog:
   destination: file
   path: F:\MongoDB\log\mongod.log
   logAppend: true
storage:
   dbPath: F:\MongoDB\data
net:
   bindIp: localhost,server1.com
   port: 27017

Я создал RootCA и создал server1.pfx (CN = server1.com). Затем экспортировал rootca.cer (без ключа) и server1.cer (без ключа) и установил их на сервере, на котором запущено клиентское приложение, в Trusted Root Authority (rootca.cer) и Personal (server1.cer) .

Я использую следующую строку подключения:

mongodb://user:*******************@server1.com:27017/CustomerDB?authSource=CustomerDB&tls=true&tlsAllowInvalidCertificates=true

Ошибка, которую я получаю:

Error receiving request from client: SSLHandshakeFailed: The server is configured to only allow SSL connections

Я добавил tls = true и включил TLS 1.1 и 1.2 на сервере, на котором запущено клиентское приложение. Я могу подключиться к MongoDB из другого приложения, запущенного на другом сервере с той же строкой подключения.

1 Ответ

0 голосов
/ 16 апреля 2020

Ваш клиент не использует TLS.

Обратите внимание, что tls=true - это относительно недавно добавленная опция. Убедитесь, что вы используете текущую версию драйвера MongoDB.

...