Выпуск сертификата в конфигурации Kestrel ssl JSON с использованием. net Core 3.1 - PullRequest
1 голос
/ 26 января 2020

Я видел ответ на этот вопрос, но, похоже, он не работает. net core 3.1 Этот код находит сертификат:

using (var store = new X509Store("Root", StoreLocation.LocalMachine))
{
    store.Open(OpenFlags.ReadOnly);
    var certCollection = store.Certificates;  
    var currentCerts = certCollection.Find(X509FindType.FindBySubjectName, "*.timedesk.com", false);
    if (currentCerts.Count == 0)
        throw new Exception("Https certificate is not found.");
}

Этот appsettings. json не находит сертификат:

"Kestrel": {
  "Endpoints": {
    "Https": {
      "URL": "https://toast.timedesk.com:443",
      "Scheme": "https",
      "Certificate": {
        "Store": "Root",
        "Location": "LocalMachine",
        "Subject": "*.timedesk.com",
        "AllowInvalid": false
      }
    }
  }
}

выдает следующую ошибку:

System.InvalidOperationException: 'The requested certificate *.timedesk.com could not be found in LocalMachine/Root with AllowInvalid setting: False.'

1 Ответ

1 голос
/ 27 января 2020

Я разобрался с проблемой, у Cert на сервере не было закрытого ключа. Как только я получил закрытый ключ, он начал работать. Сертификат показывает, что теперь у него есть закрытый ключ

...