【问题标题】:SslRequireCert and Azure Web RolesSslRequireCert 和 Azure Web 角色
【发布时间】:2016-08-22 22:57:12
【问题描述】:

我的 Azure Web 角色(云服务,而不是 WebApp)需要支持客户端证书。

我发现我可以通过包含的 WebRole.cs sn-p 更改网站的配置。部署后,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();
}

【问题讨论】:

    标签: asp.net azure azure-web-roles azure-cloud-services client-certificates


    【解决方案1】:

    看来我也需要设置 SslNegotiateCert 设置,如下所示:

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

    【讨论】:

    • 非常有帮助
    【解决方案2】:

    您是否在服务定义中设置了证书?

    <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 2014-08-29
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      相关资源
      最近更新 更多