I certificati SSL autogestiti sono certificati che ottieni eseguire il provisioning e rinnovare l'abbonamento. Puoi utilizzare questa risorsa per proteggere la comunicazione tra i client e il bilanciatore del carico.
I certificati autogestiti possono essere una qualsiasi combinazione dei seguenti certificati tipi:
- Convalida del dominio (DV)
- Convalida dell'organizzazione (OV)
- Convalida estesa (EV)
I certificati autogestiti sono supportati con i seguenti bilanciatori del carico:
- Certificati globali
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno (con un proxy SSL di destinazione)
- Certificati regionali
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno
In questa pagina viene descritto il processo per ottenere un progetto Compute Engine valido e poi caricare il certificato per creare Google Cloud Risorsa del certificato SSL.
Per creare certificati gestiti da Google utilizzando Gestione certificati, consulta Panoramica del deployment.
Prima di iniziare
- Assicurati di conoscere la panoramica dei certificati SSL.
- Assicurati di disporre dei nomi di dominio che vuoi utilizzare per certificato SSL autogestito. Se utilizzi Cloud Domains, consulta il passaggio 1: registra un nome di dominio utilizzando Cloud Domains.
Autorizzazioni
Per eseguire le attività descritte in questa guida, devi essere in grado di creare e modificare SSL nel tuo progetto. Puoi farlo se una delle seguenti condizioni è vera:
- Sei il proprietario o un progetto
Editor (
roles/owner
oroles/editor
). - Hai il ruolo Amministratore sicurezza Compute
(
compute.securityAdmin
) e il ruolo Amministratore rete Compute (compute.networkAdmin
) nel progetto. - Hai un ruolo personalizzato per il progetto che include le autorizzazioni
compute.sslCertificates.*
e una o entrambe le autorizzazionicompute.targetHttpsProxies.*
ecompute.targetSslProxies.*
, a seconda del tipo di bilanciatore del carico in uso.
Passaggio 1: crea una chiave privata e un certificato
Se hai già una chiave privata e un certificato di un'autorità di certificazione (CA), salta questa sezione e vai a Creare una risorsa del certificato SSL.
Seleziona o crea una chiave privata
Un certificato SSL di Google Cloud include sia una chiave privata sia il certificato stesso, entrambi in formato PEM. La chiave privata deve soddisfare i seguenti criteri:
- Deve essere in formato PEM.
- Non può essere protetto da una passphrase. Google Cloud archivia privata nel proprio formato criptato.
- L'algoritmo di crittografia deve essere RSA-2048 o ECDSA P-256.
Per creare una nuova chiave privata, utilizza uno dei seguenti comandi OpenSSL.
Crea una chiave privata RSA-2048:
openssl genrsa -out PRIVATE_KEY_FILE 2048
Crea una chiave privata ECDSA P-256:
openssl ecparam -name prime256v1 -genkey -noout -out PRIVATE_KEY_FILE
Sostituisci PRIVATE_KEY_FILE con il percorso e il nome file della nuova istanza chiave privata.
Creare una richiesta di firma del certificato (CSR)
Dopo aver ottenuto una chiave privata, puoi generare una richiesta di firma del certificato (CSR) in formato PEM utilizzando OpenSSL. Il tuo CSR deve soddisfare i seguenti criteri:
- Deve essere in formato PEM.
- Deve avere un attributo nome comune (
CN
) o nome alternativo soggetto (SAN
). In pratica, il certificato deve contenere entrambi gli attributiCN
eSAN
, anche se si riferisce a un singolo dominio. I client moderni, come le versioni attuali di macOS e iOS, non si basano solo sull'attributoCN
.
Per creare un CSR:
Crea una configurazione OpenSSL . Nell'esempio seguente, i nomi alternativi degli oggetti sono definiti in
[sans_list]
.cat <<'EOF' >CONFIG_FILE [req] default_bits = 2048 req_extensions = extension_requirements distinguished_name = dn_requirements prompt = no [extension_requirements] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @sans_list [dn_requirements] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) organizationalUnitName = Organizational Unit Name (eg, section) commonName = Common Name (e.g. server FQDN or YOUR name) emailAddress = Email Address [sans_list] DNS.1 = SUBJECT_ALTERNATIVE_NAME_1 DNS.2 = SUBJECT_ALTERNATIVE_NAME_2 EOF
Esegui questo comando OpenSSL per creare una richiesta di firma del certificato (CSR). Il comando è interattivo; ti vengono richiesti gli attributi tranne i nomi alternativi dell'oggetto, che hai definito nel
[sans_list]
di CONFIG_FILE nel passaggio precedente.openssl req -new -key PRIVATE_KEY_FILE \ -out CSR_FILE \ -config CONFIG_FILE
Per entrambi i passaggi, sostituisci quanto segue:
- CONFIG_FILE: il percorso, incluso il nome del file, per l'elemento OpenSSL di configurazione del deployment (puoi eliminare il file al termine procedura)
SUBJECT_ALTERNATIVE_NAME_1 e SUBJECT_ALTERNATIVE_NAME_2: nomi alternativi dell'oggetto per il tuo certificato
Se il certificato è solo per un nome host, devi solo definire un singolo nome alternativo dell'oggetto che corrisponda al nome comune. Se hai bisogno di più di due nomi alternativi per l'oggetto, aggiungili al file di configurazione, incrementando il numero dopo
DNS
(DNS.3
,DNS.4
e così via).PRIVATE_KEY_FILE: il percorso del file della chiave privata
CSR_FILE: il percorso, incluso il nome del file, per la richiesta di firma del certificato (CSR)
Firma il CSR
Quando un'autorità di certificazione (CA) firma la richiesta CSR, utilizza la propria chiave privata per creare un certificato. Per firmare la richiesta di firma del certificato, utilizza uno dei seguenti metodi:
Utilizza una CA attendibile pubblicamente
Se richiedi a un'autorità di certificazione attendibile pubblicamente di firmare la richiesta CSR, il certificato risultante viene considerata attendibile da tutti i clienti che si affidano a questa CA pubblica. Per produrre un certificato firmato, l'autorità di certificazione pubblica ha bisogno solo della tua CSR.
Utilizzare la propria CA interna
Se gestisci la tua CA, puoi utilizzarla per firmare la richiesta di firma del certificato. Utilizzo della CA per firma la tua richiesta di firma del certificato (CSR) crea un certificato attendibile internamente quando i clienti configurate in modo da considerare attendibili la propria CA.
Utilizza un certificato autofirmato
Se utilizzi la stessa chiave privata che hai utilizzato per creare la richiesta di firma del certificato (CSR) per firmare la richiesta, Se hai creato un certificato autofirmato, Devi utilizzare i certificati autofirmati solo per i test.
Google Cloud non supporta la verifica lato client per i modelli autofirmati certificati server. Pertanto, devi configurare il client in modo da saltare la convalida del certificato. Ad esempio, puoi creare un client del browser web che visualizza un messaggio che ti chiede se vuoi considerare attendibile un certificato autofirmato.
Se gestisci autonomamente la tua CA o vuoi creare un certificato autofirmato per i test, puoi utilizzare il seguente comando OpenSSL:
openssl x509 -req \ -signkey PRIVATE_KEY_FILE \ -in CSR_FILE \ -out CERTIFICATE_FILE \ -extfile CONFIG_FILE \ -extensions extension_requirements \ -days TERM
Sostituisci quanto segue:
- PRIVATE_KEY_FILE: il percorso della chiave privata per la tua CA. Se crei un certificato autofirmato per i test, questa chiave privata è la stessa utilizzata per creare la CSR
- CSR_FILE: il percorso del CSR
- CERTIFICATE_FILE: il percorso del file del certificato da creare
- TERM: il numero di giorni, a partire da ora, durante i quali il certificato deve essere considerata valida dai clienti che la verificano
Caratteri jolly nei nomi comuni
I tuoi certificati SSL autogestiti possono utilizzare un carattere jolly nel nome comune. Per
Ad esempio, un certificato con il nome comune *.example.com.
corrisponde alla
nomi host www.example.com
e foo.example.com
, ma non a.b.example.com
o
example.com
. Quando il bilanciatore del carico seleziona un certificato, preferisce sempre associare un nome host ai certificati senza caratteri jolly rispetto ai certificati con caratteri jolly.
I certificati con frammenti di caratteri jolly, come f*.example.com
, non sono
supportati.
Passaggio 2: crea una risorsa del certificato SSL autogestito
Prima di poter creare una risorsa del certificato SSL Google Cloud, devi avere una chiave privata e un certificato. Consulta la sezione Creazione di una chiave privata o un certificato, se non lo hai già creato li hai ottenuti.
Una volta creato un certificato, non puoi modificarne l'ambito da globale a regionale o da regionale a globale.
Console
Puoi utilizzare i certificati SSL globali nella scheda Certificati classici della console Google Cloud.
Impossibile creare certificati SSL a livello di regione nella console Google Cloud.
Utilizza gcloud
o l'API REST.
- Vai alla scheda Certificato classico nella console Google Cloud.
Passare ai certificati classici - Fai clic su Crea certificato SSL.
- Inserisci un nome e una descrizione facoltativa per il certificato.
- Seleziona Carica il mio certificato.
- Incolla il certificato o fai clic su Carica per passare al tuo
del certificato.
Puoi scegliere di includere la catena di certificati CA nello stesso file del certificato. Google Cloud non convalida la catena di certificati per te: la convalida è tua responsabilità. - Incolla la chiave privata o fai clic su Carica per accedere al file della chiave privata.
- Fai clic su Crea.
gcloud
Per creare un certificato SSL globale, utilizza il comando gcloud compute ssl-certificates
create
con il flag --global
:
gcloud compute ssl-certificates create CERTIFICATE_NAME \ --certificate=CERTIFICATE_FILE \ --private-key=PRIVATE_KEY_FILE \ --global
Per creare un certificato SSL a livello di regione,
utilizza il comando gcloud compute ssl-certificates
create
il flag --region
:
gcloud compute ssl-certificates create CERTIFICATE_NAME \ --certificate=CERTIFICATE_FILE \ --private-key=PRIVATE_KEY_FILE \ --region=REGION
Sostituisci quanto segue:
- CERTIFICATE_NAME: il nome della risorsa del certificato globale da creare
CERTIFICATE_FILE: il percorso di un file del certificato in formato PEM
Puoi scegliere di includere la catena del certificato CA nello stesso file del certificato. Google Cloud non convalida la catena di certificati per te; la convalida è una tua responsabilità.
PRIVATE_KEY_FILE: il percorso di una chiave privata in formato PEM; il la chiave privata non può essere protetta da una passphrase
REGION: se applicabile, la regione per il protocollo SSL a livello di regione certificato
Se questa risorsa di certificato è per un il bilanciatore del carico delle applicazioni interno o un bilanciatore del carico delle applicazioni esterno regionale, deve corrispondere a quella del bilanciatore del carico.
API
Per utilizzare i metodi dell'API, devi prima leggere il certificato e di chiavi private perché la richiesta API deve inviare i contenuti dei file.
Leggi il certificato e i file della chiave privata, quindi crea l'SSL certificato. I seguenti esempi mostrano come eseguire questa operazione con Python.
Per i certificati SSL globali, utilizza la classe sslCertificates.insert Metodo API:
Per i certificati SSL a livello di regione, utilizza il metodo dell'API regionSslCertificates.insert:
Per ulteriori esempi di codice, consulta il riferimento API .
Passaggio 3: associa un certificato SSL a un proxy di destinazione
Devi associare almeno un certificato SSL a ogni proxy HTTPS o SSL di destinazione. Puoi configurare il proxy di destinazione con il numero massimo di connessioni SSL certificati per HTTPS o SSL di destinazione proxy. Puoi fare riferimento a più certificati gestiti autonomamente nello stesso proxy di destinazione.
Console
Quando utilizzi la console Google Cloud per modificare un bilanciatore del carico esistente, associare automaticamente il certificato SSL alla destinazione proxy.
gcloud
Per associare un certificato SSL globale a un proxy HTTPS di destinazione,
usa il comando gcloud compute target-https-proxies
update
con i flag --global
e --global-ssl-certificates
:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --global \ --ssl-certificates=SSL_CERTIFICATE_LIST \ --global-ssl-certificates
Per associare un certificato SSL globale a un proxy SSL di destinazione,
utilizza il comando gcloud compute target-ssl-proxies
update
:
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_LIST
Per associare un certificato SSL regionale a un proxy HTTPS di destinazione,
utilizza il comando gcloud compute target-https-proxies
update
con i flag --region
e --ssl-certificates-region
:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --region=REGION \ --ssl-certificates=SSL_CERTIFICATE_LIST \ --ssl-certificates-region=REGION
Sostituisci quanto segue:
TARGET_PROXY_NAME
: il nome del bilanciatore del carico proxy di destinazioneREGION
(se applicabile): la regione per la regione proxy di destinazione e certificato SSL a livello di regione; le regioni devono corrispondereSSL_CERTIFICATE_LIST
: un elenco di delimitato da virgole di Nomi dei certificati SSL di Google CloudAssicurati che l'elenco i certificati di riferimento includono anche tutti i certificati SSL validi meno recenti come nuovo certificato SSL. Il comando
gcloud compute target-ssl-proxies update
sostituisce i valori originali di--ssl-certificates
con il nuovo valore.
API
Per associare un certificato SSL globale a un proxy HTTPS di destinazione, effettua una richiesta POST
al
targetHttpsProxies.insert
sostituendo PROJECT_ID
con il tuo ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy { "name": "l7-xlb-proxy", "urlMap": "projects/PROJECT_ID/global/urlMaps/l7-xlb-map", "sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME }
Per associare un certificato SSL globale a un proxy HTTPS di destinazione, effettua una richiesta POST
al
targetSslProxies.insert
sostituendo PROJECT_ID
con il tuo ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxy { "name": "l7-ssl-proxy", "sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME }
Per associare un certificato SSL regionale a un proxy HTTPS di destinazione, invia una richiesta POST
al metodo
targetHttpsProxies.insert
, sostituendo PROJECT_ID
con l'ID del tuo progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy { "name": "l7-xlb-proxy", "urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map", "region": "us-west1" "sslCertificates": /projectsPROJECT_IDregions/us-west1/sslCertificates/SSL_CERT_NAME }
Passaggio 4: aggiorna i record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico
Sul sito del tuo registrar, sull'host DNS o sull'ISP (ovunque siano gestiti i tuoi record DNS), aggiungi o aggiorna i record A DNS (per IPv4) e i record AAAA DNS (per IPv6) per i tuoi domini e eventuali sottodomini in modo che rimandino all'indirizzo IP associato alla regola o alle regole di inoltro del bilanciatore del carico.
Se utilizzi Cloud DNS e Cloud Domains, configura il tuo domini e aggiorna i tuoi server dei nomi.
Se utilizzi più domini per un singolo certificato, devi aggiungere o aggiornare i record DNS per tutti i domini e gli eventuali sottodomini in modo che tutti rimandino all'indirizzo IP del bilanciatore del carico.
Dopo aver atteso la propagazione DNS
completato,
puoi verificare la configurazione eseguendo il comando dig
. Ad esempio:
Supponiamo che il tuo dominio sia www.example.com
. Esegui questo comando dig
:
dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31748 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;www.example.com. IN A ;; ANSWER SECTION: www.example.com. 1742 IN CNAME www.example.com.edgekey.net. www.example.com.edgekey.net. 21330 IN CNAME www.example.com.edgekey.net.globalredir.akadns.net. www.example.com.edgekey.net.globalredir.akadns.net. 3356 IN CNAME e6858.dsce9.akamaiedge.net. e6858.dsce9.akamaiedge.net. 19 IN A 203.0.113.5 ;; Query time: 43 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Jun 03 16:54:44 PDT 2020 ;; MSG SIZE rcvd: 193
In questo esempio, 203.0.113.5
è l'indirizzo IP del bilanciatore del carico.
Passaggio 5: esegui un test con OpenSSL
Potrebbero essere necessari fino a 30 minuti prima che il bilanciatore del carico inizi a utilizzare certificato SSL autogestito.
Per verificare, esegui questo comando OpenSSL, sostituendo DOMAIN con il tuo nome DNS e IP_ADDRESS con l'indirizzo IP del tuo con il bilanciatore del carico di rete passthrough esterno regionale.
echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error
Questo comando stampa i certificati che il bilanciatore del carico presenta al client. Insieme ad altre informazioni dettagliate, l'output dovrebbe
includono la catena di certificati e Verify return code: 0 (ok)
.
Utilizzare i certificati SSL autogestiti
Le sezioni riportate di seguito descrivono come elencare, visualizzare, eliminare e sostituire le risorse dei certificati SSL.
Elenca certificati SSL
Console
Puoi controllare lo stato dei certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
I certificati SSL a livello di regione non possono essere gestiti nella console Google Cloud.
Utilizza gcloud
o l'API REST.
- Vai alla scheda Certificati classici nella console Google Cloud.
Passare ai certificati classici - (Facoltativo) Filtra l'elenco dei certificati SSL.
gcloud
Per elencare i certificati SSL globali, utilizza il comando gcloud compute ssl-certificates
list
con il flag --global
:
gcloud compute ssl-certificates list \ --global
Per elencare i certificati SSL a livello di regione, utilizza
il comando gcloud compute ssl-certificates
list
con
Filtro region
:
gcloud compute ssl-certificates list \ --filter="region:(REGION ...)"
Sostituisci quanto segue:
- REGION: una regione Google Cloud; includi più regioni come un elenco separato da spazi
Descrizione dei certificati SSL
Console
Puoi visualizzare ulteriori dettagli sui tuoi certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
- Vai alla pagina Certificati classici nella console Google Cloud.
Passare ai certificati classici - (Facoltativo) Filtra l'elenco dei certificati SSL.
- Per visualizzare ulteriori dettagli, fai clic sul nome del certificato.
gcloud
Per descrivere un certificato SSL globale,
usa il comando gcloud compute ssl-certificates
describe
con il flag --global
:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global
Per descrivere un certificato SSL a livello di regione, utilizza il comando gcloud compute ssl-certificates
describe
con il flag --region
:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --region=REGION
Sostituisci quanto segue:
- CERTIFICATE_NAME: il nome del certificato SSL
- REGION: una regione Google Cloud
Elimina certificati SSL
Prima di poter eliminare un certificato SSL, devi prima aggiornare ogni proxy di destinazione
che fa riferimento al certificato. Per ogni proxy di destinazione, esegui il
gcloud update
per aggiornare il proxy di destinazione
SSL_CERTIFICATE_LIST in modo che non includa più il certificato SSL
che dovrai eliminare. Ogni proxy SSL di destinazione o proxy HTTPS di destinazione deve fare riferimento ad almeno un certificato SSL.
Dopo aver aggiornato il proxy di destinazione, puoi eliminare il certificato SSL.
Console
Puoi eliminare i certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
- Vai alla scheda Certificati classici nella console Google Cloud.
Vai ai certificati classici - Seleziona il certificato SSL che vuoi eliminare.
- Fai clic su Elimina.
- Per confermare, fai di nuovo clic su Elimina.
gcloud
Per eliminare un certificato SSL globale, utilizza il comando gcloud compute ssl-certificates
delete
con il comando --global
:
gcloud compute ssl-certificates delete CERTIFICATE_NAME \ --global
Per eliminare un certificato SSL a livello di regione, utilizza il metodo
Comando gcloud compute ssl-certificates
delete
con il comando --region
:
gcloud compute ssl-certificates delete CERTIFICATE_NAME \ --region=REGION
Sostituisci quanto segue:
- CERTIFICATE_NAME: il nome del certificato SSL
- REGION: una regione Google Cloud
Sostituire o rinnovare un certificato SSL prima che scada
Per sostituire, rinnovare o ruotare un certificato SSL, procedi nel seguente modo:
Esegui il comando
gcloud compute ssl-certificates describe
del certificato corrente, per controllare se sta per scadere.Crea una nuova risorsa del certificato SSL. Il nuovo certificato SSL deve avere un nome univoco all'interno del progetto.
Aggiorna il proxy di destinazione per scollegare il vecchio SSL certificato e aggiungi quello nuovo. Assicurati di includere qualsiasi altro protocollo SSL esistente i certificati che desideri conservare.
Per evitare i tempi di riposo, esegui un singolo comando
gcloud
con il flag--ssl-certificates
. Ad esempio:Per i bilanciatori del carico delle applicazioni esterni globali:
Utilizza la
gcloud compute target-https-proxies update
con il flag--global
.gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --global \ --ssl-certificates=new-ssl-cert,other-certificates \ --global-ssl-certificates
Per i bilanciatori del carico delle applicazioni esterni regionali e i bilanciatori del carico delle applicazioni interni:
Utilizza il comando
gcloud compute target-https-proxies update
con il flag--region
.gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --region REGION \ --ssl-certificates=new-ssl-cert,other-certificates \ --global-ssl-certificates
Per i bilanciatori del carico di rete proxy esterni:
Utilizza il comando
gcloud compute target-ssl-proxies update
con il flag--backend-service
.gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --ssl-certificates=new-ssl-cert,other-certificates
Verifica che il bilanciatore del carico fornisca il certificato sostitutivo entro il giorno eseguendo il seguente comando OpenSSL:
echo | openssl s_client -showcerts -connect IP_ADDRESS:443 -verify 99 -verify_return_error
Attendi 15 minuti per assicurarti che l'operazione di sostituzione si sia propagata tutti i Google Front End (GFE).
(Facoltativo) Elimina il certificato SSL precedente.
Ruota periodicamente i certificati SSL
Questa soluzione di esempio Controlla periodicamente lo stato dei certificati utilizzati con il carico di Google Cloud bilancia e ruota i certificati quando raggiungono una determinata percentuale del intera durata. Lo strumento utilizza le CA configurate mediante Certificate Authority Service.
Questa soluzione è compatibile con i seguenti bilanciatori del carico:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno
- Bilanciatore del carico di rete proxy esterno con un proxy SSL
Passaggi successivi
- Per risolvere i problemi relativi ai certificati SSL, consulta Risoluzione dei problemi relativi ai certificati SSL.