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