Использование команды Powershell New-SelfSignedCertificate
Я создал сертификат для использования с Identity Server.Моя команда Powershell выглядела так:
PS> New-SelfSignedCertificate -Subject "CN=mycert" -KeySpec "Signature" -CertStoreLocation "Cert:\localMachine\My\" -NotAfter "12/12/2021"
(Для сертификата пользователя я использовал Cert:\CurrentUser\My\
)
Код Identity Server выглядит следующим образом:
X509Certificate2 cert = null;
using (X509Store certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine))
{
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
thumbprint,
true);
if (certCollection.Count > 0)
{
cert = certCollection[0];
}
}
services
.AddIdentityServer()
//.AddDeveloperSigningCredential()
.AddSigningCredential(cert)
...
Для пользовательского сертификата я использовал StoreLocation.CurrentUser
.Когда я запускаю пользовательский сертификат, он работает нормально, но на локальном компьютере сертификат (я проверил в MMC, он устанавливает сертификат правильно), он не находит действительный сертификат.Просто для ясности, если я изменю:
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
thumbprint,
true);
на:
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
thumbprint,
false);
Тогда он найдет сертификат, но он явно не действителен.Может кто-нибудь сказать мне, почему это так?