Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Utilizzare i certificati OCI per emettere un certificato interno e ospitare un sito Web protetto TLS/SSL sul server Nginx
Introduzione
In questa esercitazione viene descritto come utilizzare i certificati Oracle Cloud Infrastructure (OCI) per emettere un certificato interno per ospitare un sito Web protetto TLS (Transport Layer Security)/SSL (Secure Sockets Layer) sul server Nginx. OCI Certificates è un servizio per la creazione e la gestione dei certificati TLS. Il servizio consente alle organizzazioni di creare gerarchie di autorità di certificazione (CA) private e certificati TLS che possono essere distribuiti e rinnovati automaticamente nella tenancy del cliente, integrati con servizi OCI come OCI Load Balancer e OCI API Gateway. Possiamo anche utilizzare questo servizio per generare certificati per i nostri server web interni ospitati su Nginx.
Per abilitare la cifratura TLS/SSL sul server Nginx, è necessario un certificato TLS/SSL. CSR (Certificate Signing Request) è una richiesta inviata a una CA per ottenere un certificato. L'addetto al servizio clienti contiene informazioni sull'organizzazione e sul dominio per il quale si richiede il certificato. Queste informazioni vengono verificate dalla CA prima di rilasciare il certificato TLS/SSL. La verifica di queste informazioni garantisce che il certificato venga rilasciato al legittimo proprietario del dominio. Quando si crea un addetto al servizio clienti, viene generata anche una chiave privata. Questa chiave privata viene utilizzata per decifrare i dati cifrati con la chiave pubblica corrispondente. È fondamentale generare questa chiave in modo sicuro e tenerla al sicuro.
Obiettivi
- Utilizzare i certificati OCI per emettere un certificato interno e ospitare un sito Web protetto da TLS/SSL sul server Nginx.
Prerequisiti
-
Installare l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) sul computer locale. È possibile scaricarlo dalla pagina di installazione dell'interfaccia CLI OCI.
-
Impostare e configurare l'interfaccia CLI OCI con le credenziali e la configurazione necessarie. È possibile utilizzare il comando
oci setup config
per configurare l'interfaccia CLI OCI. -
Installa Nginx sul tuo server. Per ulteriori informazioni, vedere Aggiornare la configurazione NGINX.
Task 1: installare l'interfaccia CLI OCI nell'istanza di OCI Compute
-
Installare e configurare l'interfaccia CLI OCI. Per ulteriori informazioni, vedere OCI Command Line Interface (CLI, interfaccia a riga di comando).
-
Dopo aver eseguito la connessione all'istanza di OCI Compute, eseguire i comandi riportati di seguito per installare e verificare i package Python e OCI CLI nell'istanza Linux.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
Task 2: Creare un'autorità di certificazione (CA) in OCI
Crea un'autorità di certificazione (CA) utilizzando il servizio di certificazione OCI che verrà utilizzato per emettere certificati interni per il nostro sito Web. Per ulteriori informazioni sulla configurazione della CA, vedere Creazione di un'autorità di certificazione.
Oppure
Creare una CA utilizzando l'interfaccia CLI OCI. Utilizzare il comando oci certs-mgmt certificate create-certificate-issued-by-internal-ca
e i parametri richiesti per creare una CA root. Per ulteriori informazioni, vedere create-certificate-issued-by-internal-ca.
Formato del comando:
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id <compartment_OCID> --name <CA_display_name> --subject <CA_subject_information> --kms-key-id <Vault_encryption_key_OCID>
Comando di esempio:
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --name MyRootCA --subject file://subject.json --kms-key-id ocid1.key.oc1.iad.abcxxxxx
Nota: l'oggetto è un tipo complesso il cui valore deve essere JSON valido. Il valore può essere fornito come stringa nella riga di comando o passato come file utilizzando la sintassi
file://path/to/file
.
File subject.json
di esempio.
subject.json
{
"commonName": "MyRootCA"
}
Task 3: creare una richiesta di firma certificato (CSR, Certificate Signing Request) utilizzando OpenSSL
Creare un CSR sul server Nginx, che creerà anche una chiave privata sullo stesso server. Questo è un approccio consigliato che ci fornisce un modo standardizzato per inviare la CA sulla tua chiave pubblica, nonché alcune informazioni che identificano la tua azienda e il nome di dominio. La generazione della richiesta di firma certificato direttamente sul server Nginx consente di integrare senza problemi il certificato TLS/SSL una volta emesso.
-
Passare a
cd /etc/pki/tls/private/
. -
Creare un file denominato
mywebsitecert.cnf
per specificare parametri quali il nome alternativo dell'oggetto (SAN) per il quale si richiede il certificato.Nota: l'estensione SAN consente di collegare all'oggetto del certificato identità aggiuntive, ad esempio nomi di dominio o indirizzi IP. L'uso dell'estensione SAN è una pratica standard per i certificati SSL ed è in procinto di sostituire l'uso del nome comune.
File di esempio:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] C = IN ST = Telangana L = Hyd O = OU CN = www.mywebsite.com [v3_req] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = mywebsite.com IP.1 = 1.2.3.4
-
Utilizzare il seguente comando per creare una richiesta di firma certificato.
Per ottenere il certificato SSL, è necessario fornire il file
mywebsite.csr
a una CA. Questo verrà utilizzato per generare il certificato SSL per il dominio. Utilizza la configurazione già fornita tramite il filemywebsitecert.cnf
.Proteggere il file
private.key
perché viene utilizzato per decifrare i dati cifrati con la chiave pubblica corrispondente.openssl req -out mywebsite.csr -newkey rsa:4096 -nodes -keyout private.key -config mywebsitecert.cnf
Task 4: Creare un certificato utilizzando la CA
Per creare un nuovo certificato utilizzando l'interfaccia CLI OCI, sarà necessario installare il .pem
del certificato sul server Nginx.
-
Convertire il formato del file
csr
in formato.pem
.openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
-
Per creare un certificato, eseguire il comando riportato di seguito.
Formato del comando:
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id <compartment_OCID> --csr-pem <csr_pem> --issuer-certificate-authority-id <CA_OCID> --name <Certificate-name>
Comando di esempio:
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --csr-pem mywebsite.pem --issuer-certificate-authority-id ocid1.certificateauthority.oc1.iad.aaaxxxx --name mywebsite.com
Task 5: Scarica la catena di certificati e certificati
I file del certificato pem
possono essere ottenuti direttamente dalla console OCI, andare a Identità e sicurezza, Certificati, Certificato, Visualizza contenuto e scaricare il contenuto di certificate-pem
e certificate-chain-pem
.
Creare un singolo file combinando il contenuto di entrambi i file, certificate-pem
nella parte superiore e certificate-chain-pem
nella parte inferiore del file. Il nome può essere ca_certificate.pem
.
Oppure
È anche possibile recuperare il certificato dall'interfaccia CLI OCI utilizzando il comando riportato di seguito.
Formato del comando:
oci certificates certificate-bundle get --certificate-id <Certificate_OCID> > certificate.crt
Nota: copiare l'OCID (Oracle Cloud Identifier) del certificato.
Task 6: Installare e configurare il server Nginx con il certificato
-
Installa Nginx in un'istanza di computazione. Per ulteriori informazioni, vedere Installa Nginx.
-
Aprire un browser Web e accedere alla pagina Web utilizzando
https://your-server-ip
. Controllare eventuali avvisi di sicurezza o errori che potrebbero essere visualizzati dal browser.Viene visualizzato un avviso di sicurezza, pertanto è necessario installare il certificato e modificare il file
conf
sul server Nginx. -
Copiare i file
certificate.pem
eca_certificate.pem
scaricati dalla console OCI o dall'interfaccia CLI OCI nel server Nginx. -
Configurare il server Nginx modificandone il file di configurazione, situato in
/etc/nginx/conf.d
. -
Riavviare il server Nginx.
Task 7: Verifica se HTTPS funziona
Abbiamo inserito il certificato CA (ca_certificate.pem
) nella cartella dell'autorità di certificazione radice attendibile sul computer locale, archivio dei certificati sui nostri computer client utilizzati per accedere a questo sito Web. Questa operazione viene eseguita perché le CA create dai certificati OCI sono CA private e quindi non sono ritenute attendibili dai browser, pertanto è necessario aggiungere la CA radice e la CA intermedia (se utilizzata) nell'area di memorizzazione radice attendibile o intermedia su tutti i computer locali che tentano di accedere al sito Web.
Aprire un browser Web e accedere alla pagina Web utilizzando https://your-server-ip
. È ora necessario osservare che la pagina Web viene fornita con un certificato TLS valido e che eventuali avvisi di sicurezza o errori riscontrati in precedenza devono essere risolti.
Seguendo queste procedure, si garantisce che il server Nginx sia configurato correttamente con il certificato CA interno e che i client possano accedere in modo sicuro alla pagina Web tramite HTTPS.
Collegamenti correlati
Conferme
- Autore - Shruti Soumya
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Use OCI Certificates to Issue an Internal Certificate and Host a TLS/SSL Protected Website on Nginx Server
F94729-01
March 2024