Cómo crear un certificado SSL autofirmado (o firmado por su propia CA) para una dirección IP que cumpla con los requisitos de Chrome

Resuelto rzlvmp asked hace 3 años • 1 respuestas

Cómo crear un certificado SSL autofirmado (o firmado por su propia CA) en el que Chrome pueda confiar (después de agregar el certificado CA a la máquina local).

El certificado debe ser válido para IP de red local, localhost y múltiples dominios.

rzlvmp avatar Mar 10 '21 12:03 rzlvmp
Aceptado
  1. Prepare archivos de configuración para crear certificados de forma no interactiva (sin indicaciones)

CA.cnf

[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = US
ST = Localzone     
L = localhost    
O = Certificate Authority Local Center
OU = Develop      
CN = develop.localhost.localdomain
emailAddress = [email protected]

localhost.cnf

[req]
default_bits  = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
countryName = US
stateOrProvinceName = Localzone
localityName = Localhost
organizationName = Certificate signed by my CA
commonName = localhost.localdomain

[req_ext]
subjectAltName = @alt_names

[v3_req]
subjectAltName = @alt_names

[alt_names]
IP.1 = 127.0.0.1
IP.2 = 127.0.0.2
IP.3 = 127.0.0.3
IP.4 = 192.168.0.1
IP.5 = 192.168.0.2
IP.6 = 192.168.0.3
DNS.1 = localhost
DNS.2 = localhost.localdomain
DNS.3 = dev.local
  1. Generar una clave privada y un Certificado de CA (válido por 5 años)
openssl req -nodes -new -x509 -keyout CA_key.pem -out CA_cert.pem -days 1825 -config CA.cnf
  1. Generar clave secreta del servidor web y CSR
openssl req -sha256 -nodes -newkey rsa:2048 -keyout localhost_key.pem -out localhost.csr -config localhost.cnf
  1. Cree un certificado y fírmelo con su propia autoridad certificadora ( válido 1 año )
openssl x509 -req -days 398 -in localhost.csr -CA CA_cert.pem -CAkey CA_key.pem -CAcreateserial -out localhost_cert.pem -extensions req_ext -extfile localhost.cnf
  1. Ganancia

Los archivos de salida serán:

  • CA.cnf→ Archivo de configuración de CA OpenSSL. Puede eliminarse después del proceso de creación del certificado.
  • CA_cert.pem→ Certificado de [Autoridad certificadora]. Este certificado debe agregarse al almacenamiento de la autoridad local del navegador para que todos los certificados creados con esta CA sean confiables.
  • CA_cert.srl→ Número de serie aleatorio. Puede eliminarse después del proceso de creación del certificado.
  • CA_key.pem→ Debe usarse al crear un nuevo certificado [localhost]. Puede eliminarse después del proceso de creación del certificado (si no planea reutilizarlo y CA_cert.pem).
  • localhost.cnf→ Archivo de configuración del certificado SSL OpenSSL. Puede eliminarse después del proceso de creación del certificado.
  • localhost.csr→ Solicitud de Firma de Certificado. Puede eliminarse después del proceso de creación del certificado.
  • localhost_cert.pem→ Certificado SSL. Debe instalarse en el servidor WEB .
  • localhost_key.pem→ Clave secreta. Debe instalarse en el servidor WEB .

Los nombres alternativos del certificado SSL se pueden verificar mediante

openssl x509 -noout -text -in localhost_cert.pem | grep 'X509v3 Subject Alternative Name' -A 1
rzlvmp avatar Mar 10 '2021 05:03 rzlvmp