Accesso alla sicurezza <di accesso>

Panoramica

L'elemento <access> consente di configurare se un sito Web o un'applicazione usa certificati client per l'autenticazione e consente di definire la complessità crittografica necessaria per crittografare tali certificati.

L'elemento <access> contiene un attributo sslFlags che è possibile impostare su uno dei valori seguenti:

  • Nessuno. Questa impostazione predefinita disabilita SSL per il sito o l'applicazione.
  • Ssl. Il sito o l'applicazione richiede SSL.
  • SslNegotiateCert. Il sito o l'applicazione accetta certificati client per l'autenticazione.
  • SslRequireCert. Il sito o l'applicazione richiede certificati client per l'autenticazione.
  • Ssl128. Il sito o l'applicazione richiede la crittografia del certificato SSL a 128 bit.

È possibile usare l'elemento di accesso per configurare un sito, un'applicazione o una directory virtuale per richiedere certificati client. A tale scopo, impostare un'associazione HTTPS per il sito o l'applicazione e quindi richiedere e ricevere certificati da un'autorità di certificazione (CA). I certificati possono essere certificati server Internet, certificati del server di dominio o certificati server autofirmato. I certificati del server Internet richiedono che un'autorità di certificazione rilasci il server o i server un certificato dopo averne richiesto uno. Un certificato del server di dominio viene emesso da un computer CA in esecuzione nel dominio dell'azienda e consente di controllare l'accesso alle risorse interne solo ai dipendenti che hanno installato il certificato. È possibile usare un certificato autofirmato per risolvere i problemi relativi ai certificati di terze parti, per gestire Internet Information Services (IIS) 7 in remoto, per creare un canale privato sicuro tra il server e un gruppo selezionato di utenti o per testare le funzionalità dell'applicazione che si basano su SSL.

Compatibilità

Versione Note
IIS 10.0 L'elemento <access> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <access> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <access> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <access> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <access> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <access> sostituisce le proprietà della metabase SSL 6.0 SSLAlwaysNegoClientCert e AccessSSLFlags .

Installazione

L'elemento <access> è incluso nell'installazione predefinita di IIS 7.

Procedure

Come richiedere Secure Sockets Layer

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare al sito, all'applicazione o alla directory per cui si desidera configurare i requisiti SSL. Non è possibile configurare SSL a livello di server.

  3. Nel riquadro Home fare doppio clic su Impostazioni SSL.
    Screenshot del riquadro Home con l'icona Impostazioni S L evidenziata.

  4. Nel riquadro Impostazioni SSL fare clic su Richiedi SSL.

  5. Nel riquadro Azioni fare clic su Applica.

Configurazione

È possibile configurare l'elemento <access> a livello di server nel file ApplicationHost.config o a livello di sito, applicazione o directory nel file di Web.config appropriato.

Attributi

Attributo Descrizione
sslFlags L'attributo sslFlags può essere uno dei valori possibili seguenti. Il valore predefinito è None.
Valore Descrizione
None Disabilitare SSL.
Ssl Richiedere SSL.
SslNegotiateCert Accettare i certificati client per l'autenticazione.
SslRequireCert Richiedere i certificati client per l'autenticazione.
SslMapCert Abilitare l'autenticazione di mapping dei certificati.
Ssl128 Richiedere SSL a 128 bit.

Elementi figlio

Nessuno.

Esempio di configurazione

L'esempio di configurazione seguente, se incluso nel file ApplicationHost.config, richiede una connessione SSL tra un sito Web denominato Contoso e tutti i browser client.

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

Codice di esempio

Gli esempi seguenti rendono SSL necessario per accedere a un sito Web denominato Contoso.

AppCmd.exe

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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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()