Compartilhar via


Segurança de acesso <access>

Visão geral

O elemento <access> permite configurar se um site ou aplicativo usa certificados de cliente para autenticação e permite que você defina a força criptográfica necessária para criptografar esses certificados.

O elemento <access> contém um atributo sslFlags que você pode definir para um dos seguintes valores:

  • Nenhum. Essa configuração padrão desabilita o SSL para o site ou aplicativo.
  • Ssl. O site ou aplicativo requer SSL.
  • SslNegotiateCert. O site ou aplicativo aceita certificados de cliente para autenticação.
  • SslRequireCert. O site ou aplicativo requer certificados de cliente para autenticação.
  • Ssl128. O site ou aplicativo requer criptografia de certificado SSL de 128 bits.

Você pode usar o elemento access para configurar um site, um aplicativo ou um diretório virtual para exigir certificados do cliente. Para fazer isso, defina uma associação HTTPS para seu site ou aplicativo e, em seguida, solicite e receba certificados de uma autoridade de certificação (CA). Os certificados podem ser certificados de servidor de Internet, certificados de servidor de domínio ou certificados de servidor autoassinados. Os certificados de servidor de Internet exigem que uma autoridade de certificação emita um certificado ao servidor ou servidores depois que você solicitar um. Um certificado de servidor de domínio é emitido por um computador CA em execução no domínio da sua empresa e pode ajudá-lo a controlar o acesso a recursos internos apenas para funcionários que instalaram o certificado. Você pode usar um certificado autoassinado para solucionar problemas de certificados de terceiros, gerenciar o IIS (Serviços de Informações da Internet) 7 remotamente, criar um canal privado seguro entre o servidor e um grupo selecionado de usuários ou testar recursos de aplicativos que dependem de SSL.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <access> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <access> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <access> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <access> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <access> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <access> substitui o SSLAlwaysNegoClientCert do IIS 6.0 e as propriedades de metabase AccessSSLFlags.

Instalação

O elemento <access> está incluído na instalação padrão do IIS 7.

Instruções

Como exigir o protocolo SSL

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse o site, o aplicativo ou o diretório para o qual você deseja configurar requisitos de SSL. Não é possível configurar o SSL no nível do servidor.

  3. No painel Página Inicial, clique duas vezes em Configurações de SSL.
    Screenshot of the Home pane with the S S L Settings icon being highlighted.

  4. No painel Configurações de SSL, clique em Exigir SSL.

  5. No painel Ações, clique em Aplicar.

Configuração

Você pode configurar o elemento <access> no nível do servidor no arquivo ApplicationHost.config ou no nível do site, do aplicativo ou do diretório no arquivo Web.config apropriado.

Atributos

Atributo Descrição
sslFlags O atributo sslFlags pode ter um dos valores possíveis a seguir. O padrão é None.
Valor Descrição
None Desabilite o SSL.
Ssl Exija o SSL.
SslNegotiateCert Aceite certificados do cliente para autenticação.
SslRequireCert Exija certificados do cliente para autenticação.
SslMapCert Habilita a autenticação do mapeamento de certificado de cliente.
Ssl128 Requer SSL de 128 bits.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir, quando incluído no arquivo ApplicationHost.config, requer uma conexão SSL entre um site chamado Contoso e todos os navegadores cliente.

<location path="Contoso">
   <system.webServer>
      <security>
         <access sslFlags="ssl">
      </security>
   </system.webServer>
</location>

Exemplo de código

Os exemplos a seguir tornam o SSL necessário para acessar um site chamado Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Contoso");
         accessSection["sslFlags"] = @"Ssl";
         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
      accessSection("sslFlags") = "Ssl"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"

adminManager.CommitChanges()