Nota

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

Prerequisiti

Task 1: installare l'interfaccia CLI OCI nell'istanza di OCI Compute

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.

  1. Passare a cd /etc/pki/tls/private/.

  2. 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
    
    
  3. 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 file mywebsitecert.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.

  1. Convertire il formato del file csr in formato .pem.

    openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
    
  2. 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

  1. Installa Nginx in un'istanza di computazione. Per ulteriori informazioni, vedere Installa Nginx.

  2. 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.

    Immagine

    Viene visualizzato un avviso di sicurezza, pertanto è necessario installare il certificato e modificare il file conf sul server Nginx.

  3. Copiare i file certificate.pem e ca_certificate.pem scaricati dalla console OCI o dall'interfaccia CLI OCI nel server Nginx.

  4. Configurare il server Nginx modificandone il file di configurazione, situato in /etc/nginx/conf.d.

    Immagine

  5. 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.

Immagine

Immagine

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.

Conferme

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.