Я вроде как новый для сертификатов и всего этого.Как установить сертификат в личный магазин без пароля?
У меня есть веб-приложение, которое отправляет https-запрос iframe (он должен быть https из-за самого приложения, также https) в приложение .NET, запущенное на клиенте, которое прослушивает HttpListener на https://localhost:[port], поэтому клиент приложение может получить «сделать что-нибудь сейчас» из щелчка браузера.
Когда я установить приложение клиента, я установить * .crt файл в корневом каталоге магазина и привязать его к нашему порту:
X509Certificate2 certificateFromCrtFile = new X509Certificate2(X509Certificate2.CreateFromCertFile(crtPath));
X509Store rootStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
rootStore.Open(OpenFlags.ReadWrite);
rootStore.Add(certificateFromCrtFile);
rootStore.Close();
string crtThumbprint = certificateFromCrtFile.Thumbprint;
string netshParams = string.Format("http add sslcert ipport=0.0.0.0:[port] certhash={0} appid={{{1}}}", crtThumbprint, Guid.NewGuid());
Utilities.StartProcess("netsh.exe", Environment.SystemDirectory, netshParams, true, true);
Теперь, перед тем, что я должен установить сертификат также в личный магазин, потому что мой «сервер» в этом случае является HttpListener на том же клиенте.
Хорошо, так что я мог бы сделать это следующим образом:
X509Certificate2 certificateFromPfxFile = new X509Certificate2(pfxPath, "pwd");
X509Store personalStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
personalStore.Open(OpenFlags.ReadWrite);
personalStore.Add(certificateFromPfxFile);
personalStore.Close();
В этом случае я должен написать * .pfx пароль в незашифрованном виде в коде. И если я правильно понял, с помощью этого пароля вы можете легко получить секретный ключ, верно?