Come creare un certificato autofirmato per un nome di dominio per lo sviluppo?


123

Ho subdomain.example.comquello che uso per scopi di sviluppo. La mia soluzione di applicazione web contiene un'API web, ecc., Che devo chiamare da sistemi esterni, quindi non sto usando localhost.

Ora ho bisogno di testare SSL e ho bisogno di un certificato per il mio subdomain.example.comnome di dominio di sviluppo.

Ho provato a creare un certificato autofirmato come descritto in http://technet.microsoft.com/en-us/library/cc753127(v=ws.10).aspx , ma questo certificato funziona solo per localhost. Questo certificato può essere utilizzato per il mio scopo o dovrò creare un autofirmato per il mio sottodominio di sviluppo? Se devo creare una certificazione autofirmata per il mio sottodominio di sviluppo, quale utilità o servizio online (gratuito) posso utilizzare per questo?

Risposte:


133

Con la funzionalità di certificato autofirmato di IIS, non è possibile impostare il nome comune (CN) per il certificato e pertanto non è possibile creare un certificato associato alla scelta del sottodominio.

Un modo per aggirare il problema consiste nell'usare makecert.exe, fornito in bundle con .Net 2.0 SDK. Sul mio server è a:

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

È possibile creare un'autorità di firma e archiviarla nel repository dei certificati LocalMachine come segue (questi comandi devono essere eseguiti da un account amministratore o all'interno di un prompt dei comandi con privilegi elevati):

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

Puoi quindi creare un certificato associato al tuo sottodominio e firmato dalla tua nuova autorità:

(Tieni presente che il valore del parametro -in deve essere uguale al valore CN utilizzato per generare la tua autorizzazione sopra.)

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

Il tuo certificato dovrebbe quindi apparire in Gestione IIS per essere associato al tuo sito come spiegato nel post di Tom Hall.

Tutti i complimenti per questa soluzione a Mike O'Brien per il suo eccellente post sul blog all'indirizzo http://www.mikeobrien.net/blog/creating-self-signed-wildcard


8
Sono stato in grado di fare questo lavoro. Ho dovuto utilizzare il prompt dei comandi di Visual Studio 2010 per makecert.exeessere nel mio percorso. Per i certificati ho pensato che sarei stato più sicuro e da utilizzare -a SHA512 -len 8192: è stata necessaria un'eternità per la generazione. E come sospettavo che potesse, non ha avuto alcun impatto sul livello di crittografia utilizzato da IIS. Per impostazione predefinita, IIS utilizza 128 bit, devi fare cose sui criteri di gruppo per cambiarlo. Di ulteriore nota per gli altri lettori: non modificare i numeri magici dopo -eku, sono obbligatori.
BrainSlugs83

3
Esegui tutti i comandi di cui sopra da un prompt dei comandi con privilegi amministrativi altrimenti riceverai un messaggio "Errore: Salva certificato codificato per memorizzare non riuscito => 0x5".
Giles Roberts

1
Vorrei anche condividere un ottimo collegamento Creazione di certificati autofirmati con makecert.exe per lo sviluppo . Il collegamento spiega l'approccio passo passo alla creazione di certificato radice, certificato server e certificato client. Inoltre c'è un post per spiegare come usarli.
Vikram Singh Saini

3
Browser come Chrome hanno iniziato a diventare obsoleti sha1. Sostituisci -a sha512e considera l'aggiunta -len 2048alla seconda makecertinvocazione e tutto dovrebbe andare bene.
O. Jones,

2
Si noti che questo non sembra più funzionare (almeno come mostrato sopra) in Windows 10. Ho dovuto usare invece il cmdlet PowerShell, che ha funzionato senza problemi.
DVK

120

Utilizzando PowerShell

Da Windows 8.1 e Windows Server 2012 R2 (Windows PowerShell 4.0) e versioni successive, è possibile creare un certificato autofirmato utilizzando il nuovo New-SelfSignedCertificatecmdlet:

Esempi:

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My

Utilizzo di IIS Manager

  1. Avvia Gestione IIS
  2. A livello di server, in IIS, seleziona Certificati server
  3. Sul lato destro, sotto Azioni, seleziona Crea certificato autofirmato
  4. Dove dice "Specificare un nome descrittivo per il certificato", digitare un nome appropriato per riferimento.
    1. Esempi: www.domain.comosubdomain.domain.com
  5. Quindi, seleziona il tuo sito web dall'elenco sul lato sinistro
  6. Sul lato destro, sotto Azioni, seleziona Associazioni
  7. Aggiungi una nuova associazione HTTPS e seleziona il certificato appena creato (se il tuo certificato è un certificato jolly dovrai specificare un nome host)
  8. Fare clic su OK e provarlo.

7
+1 per la soluzione PowerShell. Veloce e facile e, dopo averlo fatto, il nuovo certificato è apparso in Gestione IIS> Connessioni> Siti> [La mia applicazione]> Modifica associazioni> Modifica> Elenco a discesa Certificato SSL.
Jon Schneider

3
Dopo aver seguito le istruzioni di cui sopra e quindi aver visualizzato il certificato, le istruzioni non hanno popolato il campo CN che aveva ancora il nome dell'host locale.
daveD

7
Esattamente. Questo è sbagliato! "Friendly name" non ha nulla a che fare con CN. Non so perché questa risposta ha così tanti voti positivi?
c00000fd

25
Questo ottiene voti positivi perché il metodo Powershell funziona davvero. (Vedi risposta @DivineOps) Ecco il comando che ho usato: New-SelfSignedCertificate -FriendlyName *.mydomain.local -DnsName *.mydomain.local, localhost -CertStoreLocation Cert:\LocalMachine\MyQuesto crea un certificato nell'archivio personale. Quindi, ho prima esportato il certificato in un file e poi reimportato sia in IIS tramite IIS Manager (per usarlo per il mio binding https) e poi in Trusted Root CAs tramite MMC (per evitare avvisi del browser).
Anton

3
L' -NotAfteropzione è anche utile per specificare una data di scadenza (senza di essa, l'impostazione predefinita è solo 1 anno). Esempio che ho usatoNew-SelfSignedCertificate -DnsName *.mydomain.com -FriendlyName *.mydomain.com -NotAfter (Get-Date).AddYears(15) -CertStoreLocation cert:\LocalMachine\My
Ben Amada il

52

Per creare il nuovo certificato per il tuo dominio specifico:

Apri Powershell ISE come amministratore, esegui il comando:

New-SelfSignedCertificate -DnsName *.mydomain.com, localhost -CertStoreLocation cert:\LocalMachine\My

Per considerare attendibile il nuovo certificato:

  • Apri mmc.exe
  • Vai a Directory principale console -> Certificati (computer locale) -> Personale
  • Seleziona il certificato che hai creato, fai clic con il pulsante destro del mouse -> Tutte le attività -> Esporta e segui la procedura guidata di esportazione per creare un file .pfx
  • Vai a Console root -> Certificates -> Trusted Root Certification Authorities e importa il nuovo file .pfx

Per associare il certificato al tuo sito:

  • Apri Gestione IIS
  • Seleziona il tuo sito e scegli Modifica sito -> Associazioni nel riquadro di destra
  • Aggiungi una nuova associazione https con il nome host corretto e il nuovo certificato

2
Funziona solo in Windows 8.1 e Windows Server 2012 R2 (Windows PowerShell 4.0) o versioni successive, sebbene sia possibile generare il certificato in uno di questi sistemi operativi e importarlo successivamente su un altro computer (l'ho appena fatto per utilizzare questo certificato con SSRS installato in Windows Server 2008 R2).
mprost

2
Invece di esportare e importare per copiarlo nelle autorità di certificazione radice attendibili, puoi semplicemente copiare e incollare
jk7

Copia / Incolla funziona solo sullo stesso server. Puoi anche ctrl-trascinare il certificato dalla cartella Personale alle autorità di certificazione radice attendibili sullo stesso server. Se desideri che un altro host sia in grado di accedere al sito senza avvisi, dovrai esportarlo e chiedergli di importare il certificato nella sua TRCA locale (non è necessario includere la chiave privata).
jessewolfe

41

Ho dovuto risolvere i problemi attraverso i certificati autofirmati su Windows combinando bit e pezzi dalle risposte fornite e ulteriori risorse. Ecco la mia guida (e si spera completa). Spero che ti risparmi un po 'della mia dolorosa curva di apprendimento. Contiene anche informazioni su argomenti correlati che appariranno prima o poi quando creerai i tuoi certificati.

Crea un certificato autofirmato su Windows 10 e versioni precedenti

Non utilizzare makecert.exe. È stato deprecato da Microsoft.
Il modo moderno utilizza un comando Powershell.

Windows 10:

Apri Powershell con privilegi di amministratore:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My  -FriendlyName "Dev Cert *.dev.local, dev.local, localhost"  -NotAfter (Get-Date).AddYears(15)

Windows 8, Windows Server 2012 R2:

In Powershell su questi sistemi i parametri -FriendlyName e -NotAfter non esistono. Rimuovili semplicemente dalla riga di comando sopra.
Apri Powershell con privilegi di amministratore:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My

Un'alternativa è utilizzare il metodo per la versione precedente di Windows di seguito, che consente di utilizzare tutte le funzionalità di Win 10 per la creazione di certificati ...

Versioni precedenti di Windows:

Il mio consiglio per le versioni precedenti di Windows è di creare il certificato su una macchina Win 10, esportarlo in un file .PFX utilizzando un'istanza mmc (vedere "Considera attendibile il certificato" di seguito) e importarlo nell'archivio certificati sulla macchina di destinazione con il vecchio sistema operativo Windows. Per importare il certificato NON fare clic con il pulsante destro del mouse. Sebbene sia presente una voce "Importa certificato" nel menu di scelta rapida, non è stato possibile utilizzare tutte le mie prove per utilizzarlo su Win Server 2008. Invece aprire un'altra istanza mmc sul computer di destinazione, accedere a "Certificati (computer locale) / Personale / Certificati" , fare clic con il pulsante destro del mouse nel riquadro centrale e selezionare Tutte le attività → Importa.

Il certificato risultante

Entrambi i comandi precedenti creano un certificato per i domini localhoste *.dev.local.
La versione Win10 ha inoltre una durata live di 15 anni e un nome visualizzato leggibile di "Dev Cert * .dev.local, dev.local, localhost".

Aggiornamento: se fornisci più voci del nome host nel parametro -DnsName(come mostrato sopra), la prima di queste voci diventerà l'oggetto del dominio (AKA Common Name). L'elenco completo di tutte le voci del nome host verrà memorizzato nel campo SAN (Subject Alternative Name) del certificato. (Grazie a @BenSewards per averlo sottolineato.)

Dopo la creazione il certificato sarà immediatamente disponibile in tutti i collegamenti HTTPS di IIS (istruzioni di seguito).

Considera attendibile il certificato

Il nuovo certificato non fa parte di alcuna catena di fiducia e quindi non è considerato affidabile da alcun browser. Per cambiarlo, copieremo il certificato nell'archivio certificati per CA radice attendibili sul tuo computer:

Apri mmc.exe, File → Aggiungi / Rimuovi snap-in → scegli "Certificati" nella colonna di sinistra → Aggiungi → scegli "Account computer" → Avanti → "Computer locale ..." → Fine → OK

Nella colonna di sinistra scegli "Certificati (computer locale) / Personale / Certificati".
Trova il certificato appena creato (in Win 10 la colonna "Nome descrittivo" può aiutare).
Seleziona questo certificato e premi Ctrl-C per copiarlo negli appunti.

Nella colonna di sinistra scegli "Certificati (computer locale) / CA radice attendibili / Certificati".
Premi Ctrl-V per incollare il tuo certificato in questo negozio.
Il certificato dovrebbe apparire nell'elenco delle Autorità radice attendibili ed è ora considerato affidabile.

Usa in IIS

Ora puoi andare a Gestione IIS, selezionare i collegamenti di un sito web locale → Aggiungi → https → inserisci un nome host del modulo myname.dev.local(il tuo certificato è valido solo per *.dev.local) e seleziona il nuovo certificato → OK.

Aggiungi agli host

Aggiungi anche il tuo nome host a C: \ Windows \ System32 \ drivers \ etc \ hosts:

127.0.0.1  myname.dev.local

Contento

Ora Chrome e IE dovrebbero considerare il certificato come affidabile e caricare il tuo sito web quando apri https://myname.dev.local.

Firefox mantiene il proprio archivio certificati. Per aggiungere il tuo certificato qui, devi aprire il tuo sito web in FF e aggiungerlo alle eccezioni quando FF ti avvisa del certificato.

Per il browser Edge potrebbero essere necessarie ulteriori azioni (vedere più in basso).

Prova il certificato

Per testare i tuoi certificati, Firefox è la scelta migliore. (Credimi, anch'io sono un fan di Chrome, ma FF è meglio in questo caso.)

Ecco i motivi:

  • Firefox utilizza la propria cache SSL, che viene eliminata durante la ricarica del turno. Quindi qualsiasi modifica ai certificati dei tuoi siti web locali si rifletterà immediatamente negli avvisi di FF, mentre altri browser potrebbero richiedere un riavvio o un'eliminazione manuale della cache SSL di Windows.
  • Inoltre FF ti dà alcuni preziosi suggerimenti per verificare la validità del tuo certificato: Clicca su Avanzate quando FF mostra il suo avviso di certificato. FF ti mostrerà un breve blocco di testo con uno o più possibili avvisi nelle righe centrali del blocco di testo:

Il certificato non è attendibile perché è autofirmato.

Questo avviso è corretto! Come notato sopra, Firefox non utilizza l'archivio certificati di Windows e si fida di questo certificato solo se si aggiunge un'eccezione. Il pulsante per farlo si trova proprio sotto gli avvisi.

Il certificato non è valido per il nome ...

Questo avviso mostra che hai fatto qualcosa di sbagliato. Il dominio (carattere jolly) del certificato non corrisponde al dominio del tuo sito web. Il problema deve essere risolto modificando il (sotto) dominio del tuo sito web o emettendo un nuovo certificato corrispondente. In effetti potresti aggiungere un'eccezione in FF anche se il certificato non corrisponde, ma non otterrai mai il simbolo di un lucchetto verde in Chrome con una tale combinazione.

Firefox può visualizzare molti altri avvisi sui certificati simpatici e comprensibili in questo posto, come certificati scaduti, certificati con algoritmi di firma obsoleti, ecc. Non ho trovato nessun altro browser che mi abbia fornito quel livello di feedback per individuare eventuali problemi.

Quale pattern (sotto) dominio dovrei scegliere di sviluppare?

Nel comando New-SelfSignedCertificate sopra abbiamo usato il dominio jolly *.dev.local.

Potresti pensare: perché non usare *.local?

Semplice motivo: è illegale come dominio con caratteri jolly.
I certificati con caratteri jolly devono contenere almeno un nome di dominio di secondo livello.

Quindi, i domini del modulo *.localsono utili per sviluppare siti Web HTTP. Ma non tanto per HTTPS, perché saresti costretto a emettere un nuovo certificato di corrispondenza per ogni nuovo progetto che avvii.

Importanti note a margine:

  • I domini host validi possono contenere SOLO lettere dalla a alla z, cifre, trattini e punti. Non sono ammessi trattini bassi! Alcuni browser sono molto esigenti su questo dettaglio e possono creare difficoltà quando si rifiutano ostinatamente di abbinare il tuo dominio motör_head.dev.localal tuo pattern jolly *.dev.local. Rispetteranno quando passerai a motoer-head.dev.local.
  • Un carattere jolly in un certificato corrisponderà a UNA sola etichetta (= sezione tra due punti) in un dominio, mai di più. *.dev.local corrisponde myname.dev.local ma NON other.myname.dev.local!
  • I caratteri jolly multilivello ( *.*.dev.local) NON sono possibili nei certificati. Quindi other.myname.dev.localpuò essere coperto solo da un carattere jolly del modulo *.myname.dev.local. Di conseguenza, è meglio non utilizzare una parte del dominio di quarto livello. Metti tutte le tue variazioni nella parte di terzo livello. In questo modo otterrai un unico certificato per tutti i tuoi siti di sviluppo.

Il problema con Edge

Non si tratta in realtà di certificati autofirmati, ma è comunque correlato all'intero processo:
dopo aver seguito i passaggi precedenti, Edge potrebbe non mostrare alcun contenuto quando si apre myname.dev.local.
Il motivo è una caratteristica caratteristica della gestione della rete di Windows 10 per App moderne, chiamata "Isolamento di rete".

Per risolvere il problema, aprire un prompt dei comandi con privilegi di amministratore e immettere una volta il seguente comando:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

Ulteriori informazioni su Edge e isolamento di rete sono disponibili qui: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/


2
Vorrei notare qui che il primo nome DNS viene salvato anche come nome del soggetto, che potresti non voler essere il carattere jolly.
Ben Sewards

@ BenSewards: Grazie per averlo fatto notare, Ben. Ho aggiornato la risposta per includere i dettagli del campo oggetto / SAN. Hai riscontrato problemi nell'avere un nome host con caratteri jolly nel campo Oggetto anziché nel campo SAN?
Jpsy

@Jpsy - Funziona per me localmente sul server in cui è stato creato il certificato autofirmato, ma non in Firefox o Chrome sui miei computer (client). Ho appname.dev has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site.capito che, come afferma, non ti consente di aggiungere l'eccezione del client, contrariamente alle tue istruzioni. Si tratta di una configurazione errata all'interno di IIS stesso per quanto riguarda le impostazioni SSL, Richiedi SSL e le opzioni dei certificati client?
Code Maverick

@CodeMaverick: Potrebbe esserci qualche software antivirus o ad blocker coinvolti nel tuo problema per caso? Un'altra opzione potrebbe essere che il certificato non corrisponde al nome di dominio utilizzato. Ricorda che l'asterisco * nella CN o SAN del certificato può rappresentare solo un segmento nel nome di dominio ( non contenente punti). Quindi il CN *.mydomain.compuò essere un certificato valido per me.mydomain.comma non per me.at.mydomain.com.
Jpsy

14

Ho riscontrato lo stesso problema quando volevo abilitare SSL a un progetto ospitato su IIS 8. Infine lo strumento che ho usato è stato OpenSSL , dopo molti giorni di lotta con i comandi makecert. Il certificato viene generato in Debian, ma potevo importarlo senza problemi in IIS 7 e 8.

Scarica OpenSSL compatibile con il tuo sistema operativo e questo file di configurazione. Imposta il file di configurazione come configurazione predefinita di OpenSSL.

Per prima cosa genereremo la chiave privata e il certificato dell'autorità di certificazione (CA). Questo certificato serve per firmare la richiesta di certificato (CSR).

È necessario completare tutti i campi richiesti in questo processo.

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

Puoi creare un file di configurazione con impostazioni predefinite come questo: Ora genereremo la richiesta di certificato, che è il file che viene inviato alle autorità di certificazione.

Il nome comune deve essere impostato come dominio del tuo sito, ad esempio: public.organization.com .

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

Ora la richiesta di certificato viene firmata con il certificato CA generato.

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

Il certificato generato deve essere esportato in un file .pfx che può essere importato in IIS.

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

In questo passaggio importeremo il certificato CA.

  1. Nel tuo server devi importare il certificato CA nelle Autorità di certificazione radice attendibili, poiché IIS può considerare attendibile il certificato da importare. Ricorda che il certificato da importare in IIS, è stato firmato con il certificato della CA.

    • Apri il prompt dei comandi e digita mmc .
    • Clicca su File .
    • Selezionare Aggiungi / Rimuovi snap in ... .
    • Fare doppio clic su Certificati .
    • Seleziona Account computer e Avanti -> .
    • Seleziona Computer locale e Fine .
    • Ok .
    • Vai a Certificati -> Autorità di certificazione radice attendibili -> Certificati , fai clic destro su Certificati e seleziona Tutte le attività -> Importa ...

inserisci qui la descrizione dell'immagine

  • Seleziona Avanti -> Sfoglia ...
  • È necessario selezionare Tutti i file per esplorare la posizione del file root-cacert.pem .
  • Fare clic su Avanti e selezionare Posiziona tutti i certificati nel seguente archivio : Autorità di certificazione radice attendibili .
  • Fare clic su Avanti e Fine .

inserisci qui la descrizione dell'immagine

Con questo passaggio, IIS si fida dell'autenticità del nostro certificato.

  1. Nel nostro ultimo passaggio importeremo il certificato in IIS e aggiungeremo il sito di associazione.

    • Apri Gestione Internet Information Services (IIS) o digita inetmgr al prompt dei comandi e vai a Certificati server .
    • Clicca su Importa ... .
    • Imposta il percorso del file .pfx, la passphrase e Seleziona archivio certificati su Web Hosting .

inserisci qui la descrizione dell'immagine

  • Fare clic su OK .
  • Ora vai al tuo sito su Gestione IIS e seleziona Associazioni ... e Aggiungi una nuova associazione.

  • Seleziona https come tipo di associazione e dovresti essere in grado di vedere il certificato importato.

  • Fare clic su OK e tutto è fatto.

inserisci qui la descrizione dell'immagine


Volevo avere una scadenza più lunga con un certificato autofirmato e Windows SDK con makecert.exe non era disponibile sull'host Windows. Un host Linux e questa risposta hanno fornito la soluzione.
richk

Sono contento che tu abbia trovato utile la mia risposta.
Joseph,

Dove mettere "public.organization.com" nel comando openssl?
The One

2

Un'altra opzione è creare un certificato autofirmato che ti consenta di specificare il nome di dominio per sito web. Ciò significa che puoi usarlo su molti nomi di dominio.

In IIS Manager

  1. Fare clic sul nodo del nome della macchina
  2. Apri certificati server
  3. Nel pannello Azioni, scegli "Crea certificato autofirmato"
  4. In "Specify a friendly name ..." nominalo * Dev (seleziona "Personal" dall'elenco dei tipi)
  5. Salva

Ora, sul tuo sito web in IIS ...

  1. Gestisci le associazioni
  2. Crea una nuova associazione per Https
  3. Scegli il tuo certificato autofirmato dall'elenco
  4. Una volta selezionato, la casella del nome di dominio verrà abilitata e sarai in grado di inserire il tuo nome di dominio.

inserisci qui la descrizione dell'immagine


Grazie della risposta più utile finora. Almeno per usarlo in fase di sviluppo questo è veloce.
cabaji99

0

Un altro modo semplice per generare un certificato autofirmato è utilizzare Jexus Manager,

Jexus Manager

  1. Scegli un nodo del server nel pannello Connessioni.
  2. Nel pannello centrale, fare clic sull'icona Certificati server per aprire la pagina di gestione.
  3. Nel pannello Azioni, fai clic sulla voce di menu "Genera certificato autofirmato ...".

https://www.jexusmanager.com/en/latest/tutorials/self-signed.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.