Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Información general
El elemento <hsts>
del elemento <siteDefaults>
contiene atributos que permiten configurar la configuración de seguridad de transporte estricta HTTP (HSTS) predeterminada para un sitio en IIS 10.0 versión 1709 y posteriores.
Nota:
Si el elemento <hsts>
está configurado en la sección <siteDefaults>
y en la sección <site>
de un sitio específico, la configuración de la sección <site>
se usa para ese sitio.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0, versión 1709 | El elemento <hsts> del elemento <siteDefaults> se introdujo en IIS 10.0 versión 1709. |
IIS 10.0 | N/D |
IIS 8.5 | N/D |
IIS 8.0 | N/D |
IIS 7.5 | N/D |
IIS 7.0 | N/D |
IIS 6,0 | N/D |
Configuración
El elemento <hsts>
del elemento <siteDefaults>
se incluye en la instalación predeterminada de IIS 10.0 versión 1709 y posteriores.
Procedimientos
No hay ninguna interfaz de usuario que le permita configurar el elemento <hsts>
del elemento <siteDefaults>
para IIS 10.0 versión 1709. Para obtener ejemplos de cómo configurar el elemento <hsts>
del elemento <siteDefaults>
mediante programación, consulte la sección Código de ejemplo de este documento.
Configuración
Atributos
Atributo | Descripción |
---|---|
enabled |
Atributo Boolean opcional. Especifica si HSTS está habilitado (true) o deshabilitado (false) para un sitio. Si HSTS está habilitado, el encabezado de respuesta HTTP Strict-Transport-Security se agrega cuando IIS responde a una solicitud HTTPS al sitio web. El valor predeterminado es false . |
max-age |
Atributo uint opcional. Especifica la directiva max-age en el valor del campo de encabezado de respuesta HTTP Strict-Transport-Security. El valor predeterminado es 0 . |
includeSubDomains |
Atributo Boolean opcional. Especifica si la directiva includeSubDomains se incluye en el valor del campo de encabezado de respuesta HTTP Strict-Transport-Security. Nota: Habilite este atributo solo si todos los subdominios ofrecen realmente un servicio basado en HTTP a través de TLS/SSL. El valor predeterminado es false . |
preload |
Atributo Boolean opcional. Especifica si la directiva preload se incluye en el valor del campo de encabezado de respuesta HTTP Strict-Transport-Security. Nota: Habilite este atributo solo si el dominio del sitio se ha enviado para su inclusión en la lista de carga previa de HSTS. El valor predeterminado es false . |
redirectHttpToHttps |
Atributo Boolean opcional. Especifica si el redireccionamiento HTTP a HTTPS está habilitado (true) o deshabilitado (false) para un sitio. Nota: Al habilitar redirectHttpToHttps, se aplica el redireccionamiento HTTP a HTTPS de nivel de sitio. Cuando IIS redirige una solicitud HTTP, reemplaza el esquema URI por "https" y omite el componente de puerto. Asegúrese de que el destino de redireccionamiento proporciona un servicio basado en HTTP a través de TLS/SSL en el puerto estándar 443. El valor predeterminado es false . |
Elementos secundarios
Ninguno.
Ejemplo de configuración
En el ejemplo de configuración siguiente se especifican las opciones <hsts>
predeterminadas para IIS 10.0, versión 1709 y posteriores.
<system.applicationHost>
<sites>
<siteDefaults>
<hsts enabled="true" max-age="31536000" includeSubDomains="true" redirectHttpToHttps="true" />
</siteDefaults>
</sites>
</system.applicationHost>
Código de ejemplo
Los ejemplos de código siguientes configuran las opciones <hsts>
predeterminadas para IIS 10.0, versión 1709 y posteriores.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.hsts.enabled:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.hsts.max-age:"31536000" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.hsts.includeSubDomains:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.hsts.redirectHttpToHttps:"True" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetrocommit en apphost
cuando use AppCmd.exe para configurar estos valores. 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 sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");
ConfigurationElement hstsElement = siteDefaultsElement.GetChildElement("hsts");
hstsElement["enabled"] = true;
hstsElement["max-age"] = 31536000;
hstsElement["includeSubDomains"] = true;
hstsElement["redirectHttpToHttps"] = true;
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 sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")
Dim hstsElement As ConfigurationElement = siteDefaultsElement.GetChildElement("hsts")
hstsElement("enabled") = True
hstsElement("max-age") = 31536000
hstsElement("includeSubDomains") = True
hstsElement("redirectHttpToHttps") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");
var hstsElement = siteDefaultsElement.ChildElements.Item("hsts");
hstsElement.Properties.Item("enabled").Value = true;
hstsElement.Properties.Item("max-age").Value = 31536000;
hstsElement.Properties.Item("includeSubDomains").Value = true;
hstsElement.Properties.Item("redirectHttpToHttps").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")
Set hstsElement = siteDefaultsElement.ChildElements.Item("hsts")
hstsElement.Properties.Item("enabled").Value = True
hstsElement.Properties.Item("max-age").Value = 31536000
hstsElement.Properties.Item("includeSubDomains").Value = True
hstsElement.Properties.Item("redirectHttpToHttps").Value = True
adminManager.CommitChanges()
Cmdlets de PowerShell de IISAdministration
Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay
$sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection
$siteDefaultsElement = Get-IISConfigElement -ConfigElement $sitesCollection -ChildElementName "siteDefaults"
$hstsElement = Get-IISConfigElement -ConfigElement $siteDefaultsElement -ChildElementName "hsts"
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $true
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 31536000
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $true
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "redirectHttpToHttps" -AttributeValue $true
Stop-IISCommitDelay
Remove-Module IISAdministration