Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la capa gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Uso de certificados de OCI para emitir un certificado interno y alojar un sitio web protegido TLS/SSL en el servidor Nginx
Introducción
En este tutorial, describimos cómo utilizar certificados de Oracle Cloud Infrastructure (OCI) para emitir un certificado interno para alojar un sitio web protegido de seguridad de capa de transporte (TLS)/capa de conexión segura (SSL) en el servidor de Nginx. OCI Certificates es un servicio para crear y gestionar certificados TLS. El servicio permite a las organizaciones crear jerarquías de autoridad de certificación (CA) privadas y certificados TLS que se pueden desplegar y renovar automáticamente en el arrendamiento del cliente, integrados con servicios de OCI como OCI Load Balancer y OCI API Gateway. También podemos utilizar este servicio para generar certificados para nuestros servidores web internos alojados en Nginx.
Para activar el cifrado TLS/SSL en el servidor Nginx, necesita un certificado TLS/SSL. La solicitud de firma de certificado (CSR) es una solicitud enviada a una CA para obtener un certificado. La CSR contiene información sobre su organización y el dominio para el que solicita el certificado. La CA verifica esta información antes de emitir el certificado TLS/SSL. La verificación de esta información garantiza que el certificado se expida al propietario legítimo del dominio. Cuando crea una CSR, también genera una clave privada. Esta clave privada se utiliza para descifrar los datos cifrados con la clave pública correspondiente. Es crucial generar esta clave de forma segura y mantenerla a salvo.
Objetivos
- Utilice OCI Certificates para emitir un certificado interno y alojar un sitio web protegido por TLS/SSL en el servidor de Nginx.
Requisitos
-
Instale la interfaz de línea de comandos de Oracle Cloud Infrastructure (CLI de OCI) en la máquina local. Puede descargarlo desde la página de instalación de la CLI de OCI.
-
Configure la CLI de OCI con las credenciales y la configuración necesarias. Puede utilizar el comando
oci setup config
para configurar la CLI de OCI. -
Instalar Nginx en el servidor. Para obtener más información, consulte Update the NGINX configuration.
Tarea 1: Instalación de la CLI de OCI en la instancia informática de OCI
-
Instalación y configuración de la CLI de OCI. Para obtener más información, consulte Interfaz de línea de comandos (CLI) de OCI.
-
Después de conectarse a la instancia de OCI Compute, ejecute los siguientes comandos para instalar y verificar paquetes de Python y la CLI de OCI en la instancia de Linux.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
Tarea 2: Creación de una autoridad de certificación (CA) en OCI
Cree una autoridad de certificación (CA) mediante el servicio OCI Certificate que se utilizará para emitir certificados internos para nuestro sitio web. Para obtener más información sobre la configuración de CA, consulte Creating a Certificate Authority.
O bien:
Cree una CA mediante la CLI de OCI. Utilice el comando oci certs-mgmt certificate create-certificate-issued-by-internal-ca
y los parámetros necesarios para crear una CA raíz. Para obtener más información, consulte create-certificate-issued-by-internal-ca.
Formato de 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 de muestra:
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: El asunto es un tipo complejo cuyo valor debe ser JSON válido. El valor se puede proporcionar como una cadena en la línea de comandos o se puede transferir como un archivo con la sintaxis
file://path/to/file
.
Archivo subject.json
de ejemplo.
subject.json
{
"commonName": "MyRootCA"
}
Tarea 3: Creación de una solicitud de firma de certificado (CSR) mediante OpenSSL
Cree una CSR en el servidor Nginx, que también creará una clave privada en el mismo servidor. Este es un enfoque recomendado que nos proporciona una forma estandarizada de enviar la CA en su clave pública, así como información que identifica su compañía y nombre de dominio. La generación de la CSR directamente en el servidor Nginx le permite integrar sin problemas el certificado TLS/SSL una vez que se emite.
-
Vaya a
cd /etc/pki/tls/private/
. -
Cree un archivo denominado
mywebsitecert.cnf
para especificar parámetros como el nombre alternativo de asunto (SAN) para el que va a solicitar el certificado.Nota: La extensión SAN permite asociar identidades adicionales, como nombres de dominio o direcciones IP, al asunto del certificado. El uso de la extensión SAN es una práctica estándar para los certificados SSL, y está en camino de reemplazar el uso del nombre común.
Archivo de ejemplo:
[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
-
Utilice el comando siguiente para crear una CSR.
Deberá proporcionar el archivo
mywebsite.csr
a una CA para obtener el certificado SSL. Lo utilizarán para generar el certificado SSL para su dominio. Utiliza la configuración ya proporcionada mediante el archivomywebsitecert.cnf
.Mantenga el archivo
private.key
seguro porque se utiliza para descifrar los datos cifrados con la clave pública correspondiente.openssl req -out mywebsite.csr -newkey rsa:4096 -nodes -keyout private.key -config mywebsitecert.cnf
Tarea 4: Creación de un certificado mediante la CA
Para crear un nuevo certificado mediante la CLI de OCI, necesitará que se instale .pem
del certificado en el servidor de Nginx.
-
Convierta el formato del archivo
csr
al formato.pem
.openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
-
Ejecute el siguiente comando para crear un certificado.
Formato de 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 de muestra:
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
Tarea 5: Descarga del Certificado y la Cadena de Certificados
Los archivos pem
del certificado se pueden obtener directamente de la consola de OCI, acceder a Identidad y seguridad, Certificados, Certificado, Ver contenido y descargar el contenido de certificate-pem
y certificate-chain-pem
.
Cree un único archivo combinando el contenido de ambos archivos, certificate-pem
en la parte superior y certificate-chain-pem
en la parte inferior del archivo. Puede nombrarlo como ca_certificate.pem
.
O bien:
También puede recuperar el certificado desde la CLI de OCI mediante el siguiente comando.
Formato de Comando:
oci certificates certificate-bundle get --certificate-id <Certificate_OCID> > certificate.crt
Nota: Copie el identificador de Oracle Cloud (OCID) del certificado.
Tarea 6: Instalación y configuración del servidor Nginx con el certificado
-
Instale Nginx en una instancia informática. Para obtener más información, consulte Install Nginx.
-
Abra un explorador web y acceda a la página web mediante
https://your-server-ip
. Compruebe si hay advertencias o errores de seguridad que pueda mostrar el explorador.Muestra una advertencia de seguridad, por lo que necesitamos instalar el certificado y modificar el archivo
conf
en el servidor Nginx. -
Copie los archivos
certificate.pem
yca_certificate.pem
descargados de la consola de OCI o la CLI de OCI en el servidor de Nginx. -
Configure el servidor de Nginx editando su archivo de configuración, ubicado en
/etc/nginx/conf.d
. -
Reinicie el servidor de Nginx.
Tarea 7: Prueba de si HTTPS está funcionando
Hemos colocado el certificado de CA (ca_certificate.pem
) en la carpeta de autoridad de certificación raíz de confianza en la máquina local, almacén de certificados en nuestras máquinas cliente utilizadas para acceder a este sitio web. Esto se hace porque las CA creadas por los certificados de OCI son CA privadas y, por lo tanto, no son de confianza para los exploradores, por lo que necesitamos agregar la CA raíz y la CA intermedia (si se utilizan) en el almacén raíz de confianza o el almacén intermedio en todas las máquinas locales que intentan acceder al sitio web.
Abra un explorador web y acceda a la página web mediante https://your-server-ip
. Ahora debe observar que la página web está siendo servida con un certificado TLS válido, y cualquier advertencia de seguridad o error encontrado anteriormente debe ser resuelto.
Al realizar estas tareas, se asegura de que el servidor Nginx esté configurado correctamente con el certificado de CA interno y de que los clientes puedan acceder de forma segura a la página web mediante HTTPS.
Enlaces relacionados
Agradecimientos
- Autor: Shruti Soumya
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use OCI Certificates to Issue an Internal Certificate and Host a TLS/SSL Protected Website on Nginx Server
F94726-01
March 2024