PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Połączenie Npgsql z certyfikatami ssl w .net core web api

Mam na to rozwiązanie i pomyślałem o opublikowaniu go tutaj, co może pomóc innym, którzy borykają się z podobnym problemem.

Nie działało z plikami .pem. Przekonwertowałem go na plik .pfx za pomocą poniższego polecenia i zaczął działać dobrze.

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

Odniesienie:Obsługa uwierzytelniania certyfikatów

EDYTUJ

Zamiast tworzyć fizyczny plik pfx, udało mi się połączyć dwa pliki pem i zadziałało. Fragment kodu jest podany poniżej dla kogoś do wykorzystania w przyszłości.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Relacja JPA wiele-do-wielu powodująca nieskończoną rekurencję i błąd przepełnienia stosu

  2. Wyzwalacz pożaru przy aktualizacji kolumny A, kolumny B lub kolumny C

  3. Jak włączyć profiler funkcji PostgreSQL?

  4. Tworzenie tabeli w trybie pojedynczego użytkownika w postgres

  5. Potrzebujesz dwóch indeksów w tabeli złączeń HABTM?