#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