Seguridad de acceso <access>
Información general
El elemento<access>
permite configurar si un sitio web o aplicación usa certificados de cliente para la autenticación y permite definir la seguridad criptográfica necesaria para cifrar esos certificados.
El elemento <access>
contiene un atributo sslFlags que puede establecer en uno de los siguientes valores:
- Ninguno. Esta configuración predeterminada deshabilita SSL en el sitio o aplicación.
- Ssl. El sitio o aplicación requiere SSL.
- SslNegotiateCert. El sitio o aplicación acepta certificados de cliente para la autenticación.
- SslRequireCert. El sitio o aplicación necesita certificados de cliente para la autenticación.
- Ssl128. El sitio o aplicación requiere un cifrado de certificado SSL de 128 bits.
Puede usar el elemento access para configurar que un sitio, aplicación o directorio virtual necesite certificados de cliente. Para ello, establezca un enlace HTTPS en su sitio o aplicación y, a continuación, solicite y reciba certificados de una entidad de certificación (CA, por sus siglas en inglés). Los certificados pueden ser certificados del servidor de Internet, del servidor de dominio o del servidor autofirmados. Los certificados del servidor de Internet necesitan que una CA emita un certificado después de solicitar uno al servidor o servidores. Un equipo de CA que se ejecuta en el dominio de su empresa emite un certificado de servidor de dominio y puede ayudarle a controlar que solo los empleados que hayan instalado el certificado accedan a los recursos internos. Puede usar un certificado autofirmado para solucionar problemas de certificados de terceros, administrar Internet Information Services (IIS) 7 de forma remota, crear un canal privado seguro entre el servidor y un grupo seleccionado de usuarios, o probar las características de una aplicación dependientes de SSL.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <access> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <access> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <access> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <access> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <access> se introdujo en IIS 7.0. |
IIS 6,0 | El elemento <access> reemplaza las propiedades de metabase SSLAlwaysNegoClientCert y AccessSSLFlags de IIS 6.0. |
Configuración
El elemento <access>
se incluye en la instalación predeterminada de IIS 7.
Procedimientos
Cómo requerir la capa de sockets seguros
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, vaya al sitio, la aplicación o el directorio para el que desea configurar los requisitos de SSL. SSL no se puede configurar en el nivel de servidor.
En el panel Inicio, haga doble clic en Configuración de SSL.
En el panel Configuración de SSL, haga clic en Requerir SSL.
En el panel Acciones, haga clic en Aplicar.
Configuración
Puede configurar el elemento <access>
en el nivel de servidor en el archivo ApplicationHost.config o bien en el nivel de sitio, de aplicación o de directorio en el archivo Web.config correspondiente.
Atributos
Atributo | Descripción | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sslFlags |
El atributo sslFlags puede ser uno de los siguientes valores posibles. El valor predeterminado es None .
|
Elementos secundarios
Ninguno.
Ejemplo de configuración
El siguiente ejemplo de configuración, al incluirlo en el archivo ApplicationHost.config, requiere una conexión SSL entre un sitio web con el nombre Contoso y todos los exploradores web cliente.
<location path="Contoso">
<system.webServer>
<security>
<access sslFlags="ssl">
</security>
</system.webServer>
</location>
Código de ejemplo
Los siguientes ejemplos hacen que SSL sea necesario para acceder a un sitio web con el nombre Contoso.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()