Rozwinąłem hostowane przez siebie api.http dodać sslcert kończy się niepowodzeniem, gdy jest programowany programowo
Ruch api musi działać przez SSL.
Za pomocą kombinacji poleceń netsh udało mi się pomyślnie dodać certyfikat, a następnie powiązać trasę z moją usługą. Szczęśliwe dni.
Ale, muszę napisać instalator, aby to zrobić programowo.
Problemem jest to, że kiedy dodać certyfikat przy moim C# kod, mogę go zobaczyć MMC certyfikat, ale gdy próbuję powiązać z nim pojawia się błąd:
SSL Certificate add failed, Error: 1312
A specified log-on session does not exist. It may already have been terminated.
Jak mówię, kiedy to zrobić ręcznie z tych etapów nie rozumiem problemu ...
- przedmiot
- dwukrotnie kliknąć na plik .pfx.
- Otwiera się MMC.
- Wybieram "Komputer lokalny"
- Na następnym ekranie potwierdzam lokalizację i nazwę pliku .pfx.
- wprowadzić hasło do certyfikatu i wybierz „Uwzględnij wszystkie właściwości rozszerzone”
- Na następnym ekranie I niech to domyślnie „Automatycznie wybierz magazyn certyfikatów na podstawie typu certyfikatu”
- I wtedy dostać ekran potwierdzenia.
- Po kliknięciu „Zakończ” pojawia się komunikat „Import był udany”
mogę wtedy zobaczyć go w MMC pod osobistym> Certyfikaty
I to pozwala mi dodać trasę użyciu narzędzie Netsh wiersz polecenia - Happy Days.
Kiedy spróbować zrobić to programowo z następującego kodu:
public static bool ConfigureSSLCertificate(string file, string password, string method)
{
try
{
X509Certificate2 cert = new X509Certificate2(file, password);
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
if (!store.Certificates.Contains(cert))
{
if (method == "add")
{
store.Add(cert);
}
}
if (method == "remove")
{
store.Remove(cert);
}
return true;
}
catch { return false; }
}
Certyfikat pojawia się w moim MMC w dokładnie tym samym miejscu, ale gdy próbuję dodać trasę z dokładnie tego samego polecenia netsh jak przed Otrzymałem komunikat o błędzie opisany powyżej:
netsh>http add sslcert ipport=0.0.0.0:8088 certhash=fb93ce2c4d8bd88c82e63e3372a050ba84f15e94 appid={bb14356a-a14f-4589-82ce-b80d38b8741e}
Z jakiegoś powodu, gdy ręcznie dodam certyfikat za pomocą MMC, a po uruchomieniu kodu coś się zmieni. Coś, co zatrzymuje dodawanie trasy.
Czy ktoś może zasugerować, co robię źle, proszę?
mam ten sam problem :( – nemke