Sim, você está certo de que, se não especificar --ssl-ca, o cliente não verificará o certificado do servidor. Como funciona sem essa opção, o motivo mais provável para a falha é que o cliente não confia no certificado do servidor.
Se você estiver usando certificados de cliente e servidor autoassinados, o arquivo ca.cert deverá incluir esses dois arquivos. Dessa forma, o cliente confiará no certificado do servidor e o servidor confiará no certificado do cliente.
Por exemplo:
Gere a chave do servidor e o certificado:
$ openssl req -x509 -newkey rsa:1024 \
-keyout server-key-enc.pem -out server-cert.pem \
-subj '/DC=com/DC=example/CN=server' -passout pass:qwerty
$ openssl rsa -in server-key-enc.pem -out server-key.pem \
-passin pass:qwerty -passout pass:
Gere a chave do cliente e o certificado:
$ openssl req -x509 -newkey rsa:1024 \
-keyout client-key-enc.pem -out client-cert.pem \
-subj '/DC=com/DC=example/CN=client' -passout pass:qwerty
$ openssl rsa -in client-key-enc.pem -out client-key.pem \
-passin pass:qwerty -passout pass:
Combine os certificados de cliente e servidor no arquivo de certificados de CA:
$ cat server-cert.pem client-cert.pem > ca.pem