ClientWebsocket with SSL in Unity

ERROR:: TlsException: Handshake failed - error code: UNITYTLS_INTERNAL_ERROR, verify result: UNITYTLS_X509VERIFY_FLAG_NOT_TRUSTED

I have the same issue like other devs that try to use a standalone ssl client solution and integrate it into unity. Have anybody an idea what unity need to solved it ?

public class SSLClientSocket
{
    private ClientWebSocket socket;
    private string cert; 
    private X509Certificate certificateFile;
    private string domain;
    private string port;
    private string protocoll = "wss://";
    public SSLClientSocket(string _domain, string _port)
    {
        socket = new ClientWebSocket();
        cert = "./Assets/cert/cert.pem";
        certificateFile = new X509Certificate(cert);
        domain = _domain;
        port = _port;
        
        //SSL Options
        socket.Options.ClientCertificates.Add(certificateFile);
        socket.Options.RemoteCertificateValidationCallback = Validat;
    }


    public async Task<bool> OpenConnection()
    {
        try
        {

            await socket.ConnectAsync(new Uri($"{protocoll}{domain}:{port}"), CancellationToken.None); // TlsException: Handshake failed - error code: UNITYTLS_INTERNAL_ERROR, verify result: UNITYTLS_X509VERIFY_FLAG_NOT_TRUSTED

            return true;
        }
        catch
        {
            return false;
        }
    
/*.......stuff......*/

    //Validation override for self signed cvertificates
    private bool Validat(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        bool isOk = true;
        if (sslPolicyErrors != SslPolicyErrors.None)
        {
            for (int i = 0; i < chain.ChainStatus.Length; i++)
            {
                if (chain.ChainStatus[i].Status == X509ChainStatusFlags.RevocationStatusUnknown)
                {
                    continue;
                }
                chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
                chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
                chain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 1, 0);
                chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags;
                bool chainIsValid = chain.Build((X509Certificate2)certificate);
                if (!chainIsValid)
                {
                    isOk = false;
                    break;
                }
            }
        }
        return isOk;
    }
}