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
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).
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.
No painel Página Inicial, clique duas vezes em Configurações de SSL.
No painel Configurações de SSL, clique em Exigir SSL.
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 .
|
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()