Как мне импортировать общедоступный сертификат в Windows Azure?

#azure #azure-web-roles

#azure #azure-web-роли

Вопрос:

Я собираюсь обмениваться данными из Windows Azure с другой общедоступной веб-службой через SSL. И сертификат в общедоступной веб-службе является самоподписанным. Поэтому мне нужно доверять общедоступному сертификату в моей Windows Azure.

Как я могу импортировать сертификат (.cer) в Windows Azure? Портал управления разрешает импортировать сертификат только с закрытым ключом.

Ответ №1:

На самом деле это проблема с порталом, а не с самой Azure. Перейдите в раздел «Добавить сертификат» на портале, нажмите кнопку обзор, перейдите туда, где находится ваш файл .cer. Перечисленные файлы отфильтрованы в виде файлов .pfx, поэтому вы не увидите файл, который хотите импортировать, но если вы введете имя файла, это сработает.

Комментарии:

1. Я по-прежнему получаю сообщение об ошибке при попытке загрузить .cer, примерно следующего содержания: Файл сертификата PFX «blah.cer» Выберите файл Файл должен содержать ошибку проверки сертификата PFX для blah.cer. Подробности: Расширение файла для blah.cer отсутствует в списке разрешенных расширений файлов — «pfx»

2. Это интересно. Я просто пошел и попробовал это снова на текущем портале (который сильно отличается от портала, когда я впервые написал этот ответ). Теперь, похоже, он показывает как .cer, так и .pfx, и я смог загрузить файл .cer без проблем. Вы пытаетесь использовать это для облачной службы или для другой службы Azure?

Ответ №2:

Это была проблема с порталом. Я думал, что это исправлено — по-видимому, нет. Вы также всегда можете преобразовать .cer в .pfx (с неверным паролем). Я запускаю это из LINQPad:

 void Main()
{
    string file = @"C:tempdeploydunnrydeploy.cer";
    var cert = X509Certificate2.CreateFromCertFile(file);

    var bytes = ((X509Certificate2)cert).Export(X509ContentType.Pfx, "p");

    var fs = File.Create(@"C:tempdeployfoo.pfx");

    using (fs)
    {
        fs.Write(bytes, 0, bytes.Length);
        fs.Flush();
    }
}
  

Ответ №3:

Существует несколько блогов о том, как это сделать — http://blogs.msdn.com/b/jnak/archive/2010/01/29/installing-certificates-in-windows-azure-vms.aspx

При этом используется ручной ввод XML для самозаверяющих сертификатов в роли

    <Certificate name="SelfSigned" storeLocation="CurrentUser" storeName="<enter a value>" />
  

Ответ №4:

Вот как я получил общедоступный сертификат из закрытого ключа и загрузил его в Azure.

1) Получите сертификат с помощью PowerShell:

 PS C:MyWebsite> $cert = New-SelfSignedCertificate -DnsName mycompany.com -CertStoreLocation "cert:LocalMachineMy" -KeyLength 2048 -KeySpec "KeyExchange"
PS C:MyWebsite> $password = ConvertTo-SecureString -String "mypassword" -Force -AsPlainText
PS C:MyWebsite> Export-PfxCertificate -Cert $cert -FilePath ".mycompany.pfx" -Password $password
  

2) Затем загрузите сертификат на портал:

введите описание изображения здесь

Для получения подробной информации, пожалуйста, смотритеhttps://learn.microsoft.com/en-us/azure/cloud-services/cloud-services-certs-create