EDIT: There was nothing wrong. I was an idiot. The below settings are correct.
Eu configurei uma instância do mongodb (3.4) no windows, configurada assim:
net:
port: 27017
ssl:
mode: preferSSL
PEMKeyFile: C:\...\mongodb.pem
CAFile: C:\...\mongodb.ca
allowConnectionsWithoutCertificates: true
O certificado é um certificado assinado pela CA emitido para um domínio específico e um subdomínio de caractere curinga.
Eu posso conectar-me ao banco de dados da minha máquina local usando um programa C # simples que tenha a seguinte string de conexão:
mongodb://user:password@hostname?ssl=true
e funciona bem. O cliente não está usando um certificado.
Eu brinquei com os parâmetros e realmente parece que está se conectando usando SSL:
mode:requireSSL
e definir ssl=false
na cadeia de conexão, não consigo me conectar, o que é esperado The remote certificate is invalid according to the validation procedure.
, o que também é esperado no SSL certificate provided by peer
- o que é esperado; o cliente não está usando um certificado, é por isso que eu configurei allowConnectionsWithoutCertificates: true
No entanto , quando olho para o tráfego usando o Wireshark, posso inspecionar todos os pacotes e ler os dados sendo enviados para e do servidor em texto simples. Não há camada SSL / TLS no painel de detalhes do pacote, apenas Ethernet, IP, TCP e, em seguida, o protocolo Mongo Wire.
Minha pergunta é : isso é esperado? O tráfego não deveria ser criptografado e, portanto, ilegível no Wireshark?