bg-tutorials

Come installare un certificato SSL su Google App Engine

Questa guida ti mostra come installare un certificato SSL su Google App Engine, sia nel modo moderno (un certificato gratuito gestito da Google che App Engine fornisce e rinnova automaticamente per qualsiasi dominio personalizzato) sia nel modo tradizionale (caricando il tuo certificato di terze parti quando hai bisogno di una CA specifica, un certificato EV/OV, o un wildcard). App Engine è una PaaS completamente gestita, quindi tutto questo avviene nella Google Cloud Console o tramite la CLI gcloud; non devi mai accedere a un server.

Prerequisiti

Prima di installare un certificato, assicurati che siano presenti i seguenti elementi:

  • Un’applicazione App Engine distribuita (ambiente standard o flessibile) in un progetto Google Cloud.
  • Un dominio registrato di cui hai il controllo, con accesso ai relativi record DNS.
  • Il dominio verificato per il tuo account Google tramite Google Search Console o Webmaster Central (App Engine legge la proprietà verificata da lì).
  • La CLI gcloud installata e autenticata, se preferisci la riga di comando alla Console.
  • Il ruolo Owner, Editor o App Engine Admin sul progetto.

I domini personalizzati e SSL su App Engine funzionano in questo ordine: verifica il dominio, mappalo alla tua applicazione, punta il DNS verso App Engine, quindi lascia che Google fornisca un certificato gestito oppure carica il tuo.

Opzione 1: SSL gratuito gestito da Google (consigliato)

I certificati gestiti da Google sono gratuiti, forniti automaticamente tramite Let’s Encrypt e rinnovati automaticamente finché il dominio rimane mappato. Questa è l’opzione predefinita per qualsiasi nuovo dominio personalizzato su App Engine ed è la scelta giusta per la maggior parte dei siti. I certificati gestiti non supportano i wildcard: ogni nome host (per esempio example.com e www.example.com) è coperto dal proprio certificato.

Passo 1: Verifica la proprietà del tuo dominio

Nel tuo browser, accedi a Google Search Console con lo stesso account Google che possiede il progetto Cloud, aggiungi il tuo dominio come proprietà e completa uno dei metodi di verifica (il record DNS TXT è il più affidabile). App Engine non ti permetterà di mappare un dominio che non hai verificato.

Passo 2: Mappa il dominio personalizzato nella Console

  • Apri la Google Cloud Console e seleziona il tuo progetto.
  • Dal menu di navigazione, scegli App Engine > Settings.
  • Apri la scheda Custom Domains e clicca su Add a custom domain.
  • Scegli il dominio verificato dal menu a tendina, quindi inserisci i sottodomini che vuoi servire (tipicamente il dominio radice example.com e www.example.com).
  • Clicca su Save mappings, quindi segui le istruzioni a schermo per aggiungere i record A, AAAA e CNAME suggeriti presso il tuo provider DNS.

Per fare lo stesso dalla riga di comando, esegui:

gcloud app domain-mappings create www.example.com --project=YOUR_PROJECT_ID
gcloud app domain-mappings create example.com --project=YOUR_PROJECT_ID

Passo 3: Attendi il certificato gestito

Una volta che il DNS si è propagato, App Engine richiede automaticamente un certificato Let’s Encrypt per ogni nome host mappato. Il provisioning è solitamente rapido, ma la propagazione DNS può richiedere fino a 24 ore. Controlla lo stato con:

gcloud app domain-mappings list --project=YOUR_PROJECT_ID

Ogni mappatura mostra uno stato SSL MANAGED_CERTIFICATE_STATUS: OK quando il certificato è attivo. Durante l’emissione vedrai PROVISIONING o PENDING_DNS; di solito si risolve da solo una volta che i record DNS puntano agli IP di Google.

Passo 4: Forza HTTPS per i visitatori (ambiente standard)

Nell’ambiente standard di App Engine, reindirizza ogni richiesta a HTTPS aggiungendo secure: always a ogni handler in app.yaml:

handlers:
- url: /.*
  script: auto
  secure: always
  redirect_http_response_code: 301

Distribuisci la modifica con gcloud app deploy. Nell’ambiente flessibile, gestisci il reindirizzamento da HTTP a HTTPS a livello di applicazione o di load balancer.

Opzione 2: Carica il tuo certificato SSL di terze parti

Scegli questo percorso quando hai bisogno di un certificato wildcard, un certificato OV o EV da una Certificate Authority specifica, oppure un certificato già emesso per il tuo dominio. App Engine accetta un unico file PEM contenente il certificato foglia e gli eventuali certificati intermedi, oltre a una chiave privata RSA non cifrata codificata in PEM. Sono ammessi fino a cinque certificati totali nel file PEM caricato (un certificato foglia più fino a quattro intermedi), e i certificati caricati possono essere riutilizzati tra progetti nella stessa organizzazione Cloud.

Passo 1: Genera la CSR e ordina il certificato

Se hai già generato la tua CSR e ricevuto il certificato emesso dalla tua CA, passa direttamente al Passo 2.

Una CSR (Certificate Signing Request) è un blocco di testo codificato contenente i tuoi dati di contatto e di dominio che la CA usa per verificare e firmare il tuo certificato. Hai due modi per crearla:

Invia la CSR (inclusi i marcatori —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–) alla CA durante il tuo ordine. Salva la chiave privata corrispondente in un luogo sicuro; ti servirà durante l’installazione.

Passo 2: Combina il certificato e la catena in un unico PEM

Se la CA ha fornito file separati (il tuo certificato server più uno o più intermedi), concatenali nell’ordine corretto (prima il tuo certificato, poi gli intermedi). Apri un terminale nella cartella che contiene i file ed esegui:

cat yourdomain.crt intermediate.crt > concat.crt

Su Windows PowerShell, l’equivalente è:

Get-Content yourdomain.crt, intermediate.crt | Set-Content concat.crt

Il risultato è un file di certificato codificato in PEM con la catena completa. Se hai anche bisogno di convertire i formati (per esempio da .pfx o .p12 a PEM), usa i nostri strumenti SSL.

La chiave privata deve essere una chiave RSA non cifrata codificata in PEM (per esempio myserver.key.pem). Se la tua è protetta da password, rimuovi la passphrase con:

openssl rsa -in encrypted.key -out myserver.key.pem

Passo 3: Carica il certificato nella Cloud Console

  • Apri la Google Cloud Console e seleziona il tuo progetto.
  • Vai su menu di navigazione > App Engine > Settings, quindi apri la scheda SSL Certificates.
  • Clicca su Upload a new certificate.
  • Assegna al certificato un Name, quindi carica concat.crt sotto PEM encoded X.509 public key certificate e myserver.key.pem sotto Unencrypted PEM encoded RSA private key.
  • Clicca su Upload.

Passo 4: Assegna il certificato ai tuoi domini

Nella pagina dei dettagli del certificato, seleziona i domini personalizzati che vuoi proteggere, quindi clicca su Save. Se un dominio sta attualmente utilizzando un certificato gestito da Google, disattiva prima la modalità gestita per esso; altrimenti il caricamento non verrà applicato.

Passo 5 (opzionale): Carica e associa dalla CLI gcloud

La stessa operazione dalla riga di comando:

gcloud app ssl-certificates create 
  --display-name="example.com 2026" 
  --certificate=concat.crt 
  --private-key=myserver.key.pem

Il comando restituisce il nuovo ID del certificato. Associalo a un dominio mappato e disattiva la modalità gestita per quella mappatura:

gcloud app domain-mappings update www.example.com 
  --certificate-id=CERT_ID 
  --certificate-management=manual

Per tornare a un certificato gratuito gestito da Google in seguito, esegui:

gcloud app domain-mappings update www.example.com 
  --certificate-management=automatic

Note e limiti

  • I certificati gestiti non coprono i wildcard. Per *.example.com, carica un certificato wildcard come nell’Opzione 2.
  • Let’s Encrypt limita l’emissione a 50 certificati gestiti a settimana per dominio base. Il limite raramente rappresenta un problema, ma conta se mappi molti sottodomini contemporaneamente.
  • I certificati caricati che non sono assegnati a nessun dominio vengono eliminati automaticamente dopo 30 giorni.
  • Il massimo è un certificato foglia più quattro intermedi in un unico file PEM caricato.
  • Un certificato caricato è visibile in tutti i progetti della tua organizzazione Cloud, quindi un singolo wildcard può essere riutilizzato.

Verifica l’installazione SSL

Apri il tuo sito con https:// e conferma la presenza del lucchetto, quindi esegui una scansione più approfondita con il nostro SSL Checker per un report immediato sul certificato, sulla catena e sul supporto dei protocolli.

Domande Frequenti

App Engine fornisce certificati SSL gratuiti?

Sì. Una volta che mappi un dominio personalizzato verificato alla tua applicazione App Engine e punti il DNS verso Google, App Engine fornisce automaticamente un certificato SSL gratuito tramite Let’s Encrypt e lo rinnova per te. Non paghi per questo e non devi caricare nulla.

Posso usare un certificato wildcard su App Engine?

I certificati gratuiti gestiti da Google non supportano i wildcard. Per proteggere *.example.com, acquista un certificato wildcard, combina il certificato foglia e gli intermedi in un unico PEM, quindi caricalo sotto App Engine > Settings > SSL Certificates (Opzione 2 sopra).

Perché il mio dominio personalizzato mostra “managed certificate pending”?

App Engine non può emettere un certificato Let’s Encrypt finché i record DNS del tuo dominio non puntano agli IP di Google forniti quando hai creato la mappatura. Verifica che i record A, AAAA e CNAME corrispondano ai valori mostrati sotto Custom Domains, quindi attendi la propagazione del DNS, che può richiedere fino a 24 ore. Esegui gcloud app domain-mappings list per ricontrollare lo stato.

Come reindirizzo HTTP a HTTPS su App Engine?

Nell’ambiente standard, aggiungi secure: always (e opzionalmente redirect_http_response_code: 301) a ogni handler in app.yaml, quindi ridistribuisci con gcloud app deploy. Nell’ambiente flessibile, esegui il reindirizzamento a livello di applicazione o di load balancer.

Devo rinnovare il certificato da solo?

Solo se hai caricato il tuo. I certificati gestiti da Google vengono rinnovati automaticamente finché il dominio rimane mappato e il DNS punta ancora ad App Engine. I certificati di terze parti caricati scadono alla data stabilita dalla CA (attualmente fino a circa un anno per i certificati TLS pubblici), quindi devi ripetere i passaggi di caricamento e assegnazione prima di quella data.

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.