1

Моя Azure Web-роль (Cloud Services, а не WebApp) должна поддерживать клиентские сертификаты.Роли SslRequireCert и Azure

Я обнаружил, что могу изменить конфигурацию веб-сайта с помощью встроенного фрагмента WebRole.cs. При развертывании параметр Client Certificate в IIS изменяется (когда я удалён от серверов), но он не работает, и я получаю ошибки авторизации. Однако, если я вручную в диспетчере IIS отключаю/запрашиваю сертификат SSL и «Применить изменения», все работает. Webrole работает в режиме ELEVATED. Что мне не хватает?

public override bool OnStart() 
{ 
    try 
    { 
     using (var server = new ServerManager()) 
     { 
      const string siteNameFromServiceModel = "Web"; // TODO: update this site name for your site. 
      var siteName = string.Format("{0}_{1}", RoleEnvironment.CurrentRoleInstance.Id, siteNameFromServiceModel); 

      var config = server.GetApplicationHostConfiguration(); 
      var accessSection = config.GetSection("system.webServer/security/access", siteName); 
      accessSection["sslFlags"] = @"Ssl,SslRequireCert"; 

      server.CommitChanges(); 
     } 
    } 
    catch (Exception ex) 
    { 
     // handle error here 

    } 
    return base.OnStart(); 
} 

ответ

1

Представляется, что мне нужно было бы plased SslNegotiateCert установки, как хорошо, так как:

     accessSection["sslFlags"] = @"Ssl, SslNegotiateCert, SslRequireCert"; 
+0

Было очень полезно –

0

Вы установили сертификат в свое определение обслуживания?

<ServiceDefinition …> 
    <WebRole name="<web-role-name>" vmsize="<web-role-size>" enableNativeCodeExecution="[true|false]"> 
    <Certificates> 
     <Certificate name="<certificate-name>" storeLocation="<certificate-store>" storeName="<store-name>" /> 
    </Certificates>  
    ... 

https://msdn.microsoft.com/en-us/library/azure/gg557553.aspx

+0

Yep. Он признан и SSL на сайте работает – Igorek

Смежные вопросы