Создайте сертификат X.509 в службах приложений Azure. - PullRequest
0 голосов
/ 13 мая 2018

Как создать самозаверяющий сертификат X.509 с использованием ядра Asp .net в службах приложения Azure.

Я пробовал использовать pluralsight.crypto и CERTENROLLLib, но оба из них не работают для меня в приложении Azure.Сервисы.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Класс CertificateRequest , добавленный в .NET Core 2.0 (а также доступный в .NET Framework 4.7.2), может создавать самозаверяющие сертификаты.

private static X509Certificate2 MakeLocalhostCert()
{
    using (ECDsa key = ECDsa.Create(ECCurve.NamedCurves.nistP384))
    {
        var request = new CertificateRequest(
            "CN=localhost",
            key,
            HashAlgorithmName.SHA384);

        // not a CA
        request.CertificateExtensions.Add(
            new X509BasicConstraintsExtension(false, false, 0, true));

        // Other extensions as appropriate

        DateTimeOffset now = DateTimeOffset.UtcNow;
        return request.CreateSelfSigned(now, now.AddDays(90));
    }
}
0 голосов
/ 13 мая 2018

Вы можете оформить заказ на сертификат SSL, создав новый сертификат службы приложений на портале Azure.Затем сохраните сертификат в хранилище ключей Azure.На той же странице конфигурации сертификата нажмите кнопку подтверждения, чтобы завершить процесс подтверждения владения доменом.Затем вы можете назначить сертификат службе приложений, импортировав сертификат службы приложений в настройках SSL.Для получения подробной информации вы можете обратиться к этому документу: https://docs.microsoft.com/en-us/azure/app-service/web-sites-purchase-ssl-web-site. Чтобы использовать сертификат, который загружен или импортирован в Службу приложений, сначала сделайте его доступным для кода вашего приложения.Вы делаете это с помощью настройки приложения WEBSITE_LOAD_CERTIFICATES.На вкладке SSL-сертификат вы получите все свои загруженные и импортированные SSL-сертификаты для веб-приложения с их отпечатками.Скопируйте отпечаток сертификата, который вы хотите использовать.Перейдите в «Настройки приложения», добавьте параметр приложения с именем WEBSITE_LOAD_CERTIFICATES и установите его значение в отпечаток сертификата, как показано на снимке экрана ниже: enter image description here

Когда закончите, нажмите Сохранить.Настроенный сертификат теперь готов к использованию вашим кодом.Когда ваш сертификат доступен, вы получаете доступ к нему в коде C # по отпечатку сертификата.Следующий код загружает сертификат с отпечатком.Ниже приведен пример,

using System;
using System.Security.Cryptography.X509Certificates;

...
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
                            X509FindType.FindByThumbprint,
                            // Replace below with your certificate's thumbprint
                            "E661583E8FABEF4C0BEF694CBC41C28FB81CD870",
                            false);
// Get the first cert with the thumbprint
if (certCollection.Count > 0)
{
    X509Certificate2 cert = certCollection[0];
    // Use certificate
    Console.WriteLine(cert.FriendlyName);
}
certStore.Close();
...
...