sql >> Database >  >> RDS >> PostgreSQL

Npgsql-verbinding met ssl-certificaten in .net core web api

Ik heb hier een oplossing voor en dacht eraan om het hier te plaatsen, wat anderen kan helpen die met hetzelfde probleem worden geconfronteerd.

Het werkte niet met .pem-bestanden. Ik heb het geconverteerd naar een .pfx-bestand met behulp van de onderstaande opdracht en het begon goed te werken.

openssl pkcs12 -inkey C:\Certs\client-key.pem -in C:\Certs\client-cert.pem -export -out C:\Certs\client-cert.pfx

Referentie:Ondersteuning voor certificaatverificatie

BEWERKEN

In plaats van het fysieke pfx-bestand te maken, kon ik de twee pem-bestanden combineren en kreeg het werkend. Codefragment wordt hieronder gegeven voor iemand ter referentie in de toekomst.

public X509Certificate2 GetCombinedCertificateAndKey(string certificatePath, string privateKeyPath)
    {
        using var publicKey = new X509Certificate2(certificatePath);

        var privateKeyText = System.IO.File.ReadAllText(privateKeyPath);
        var privateKeyBlocks = privateKeyText.Split("-", StringSplitOptions.RemoveEmptyEntries);
        var privateKeyBytes = Convert.FromBase64String(privateKeyBlocks[1]);
        using var rsa = RSA.Create();

        if (privateKeyBlocks[0] == "BEGIN PRIVATE KEY")
        {
            rsa.ImportPkcs8PrivateKey(privateKeyBytes, out _);
        }
        else if (privateKeyBlocks[0] == "BEGIN RSA PRIVATE KEY")
        {
            rsa.ImportRSAPrivateKey(privateKeyBytes, out _);
        }

        var keyPair = publicKey.CopyWithPrivateKey(rsa);
        var Certificate = new X509Certificate2(keyPair.Export(X509ContentType.Pfx));
        return Certificate;
    }



  1. MySQL-tabel wordt om de een of andere reden met 10 verhoogd

  2. equivalent van parallelle zoekopdracht van ORACLE in mysql

  3. Datums aftrekken in Oracle - nummer of intervalgegevenstype?

  4. Een Java-programma activeren op basis van database-updates en tijdsinterval