masz potencjał, przez co najmniej dwa problemy ...
First ...
Plik certyfikatu klienta nie może zawierać klucz prywatny, chyba że jest dostępne za pomocą hasła. Powinieneś używać certyfikatu PKCS # 12 (* .pfx) z hasłem, aby twój klient miał dostęp do klucza prywatnego. Kod klienta będzie musiał podać hasło podczas otwierania certyfikatu, jak już napisali inni. Istnieje kilka sposobów, aby stworzyć ten najłatwiej jest użyć następującego wiersza polecenia, aby najpierw wygenerować certyfikat, a następnie użyć menedżera certyfikatów MMC eksportować certyfikatach klucza prywatnego:
Process p = Process.Start(
"makecert.exe",
String.Join(" ", new string[] {
"-r",// Create a self signed certificate
"-pe",// Mark generated private key as exportable
"-n", "CN=" + myHostName,// Certificate subject X500 name (eg: CN=Fred Dews)
"-b", "01/01/2000",// Start of the validity period; default to now.
"-e", "01/01/2036",// End of validity period; defaults to 2039
"-eku",// Comma separated enhanced key usage OIDs
"1.3.6.1.5.5.7.3.1," +// Server Authentication (1.3.6.1.5.5.7.3.1)
"1.3.6.1.5.5.7.3.2", // Client Authentication (1.3.6.1.5.5.7.3.2)
"-ss", "my",// Subject's certificate store name that stores the output certificate
"-sr", "LocalMachine",// Subject's certificate store location.
"-sky", "exchange",// Subject key type <signature|exchange|<integer>>.
"-sp",// Subject's CryptoAPI provider's name
"Microsoft RSA SChannel Cryptographic Provider",
"-sy", "12",// Subject's CryptoAPI provider's type
myHostName + ".cer"// [outputCertificateFile]
})
);
Second ...
Twoim następnym problemem będzie serwer. Serwer musi zezwolić na ten certyfikat. Masz odpowiednią logikę, ale po niewłaściwej stronie drutu przesuń tę linię do serwera WWW obsługującego żądanie. Jeśli nie możesz, musisz wziąć ".plik cer”zapisane powyżej na serwer i dodać go do listy zaufanych komputerze serwera jest:
ServicePointManager.ServerCertificateValidationCallback = (a,b,c,d) => true;
Czy wiesz jak zrobić taką samą pracę w systemie Windows .NET? Z jakiegoś powodu nie mogę go uruchomić bez rejestracji certyfikatu w sklepie x509 – galets