Obtener un certificado SSL de cualquiera de las principales autoridades de certificación (CA) puede costar $ 100 o más. Agregue a la mezcla, noticias que parecen indicar que no se puede confiar en todas las CA establecidas el 100% del tiempo y es posible que decida sortear la incertidumbre y borrar el costo siendo su propia Autoridad de Certificación.
Pasos
Parte 1 de 4: Creación de su certificado CA
Paso 1. Genere la clave privada de su CA emitiendo el siguiente comando
-
openssl genrsa -des3 -out server. CA.key 2048
-
Las opciones explicadas
- openssl - el nombre del software
- genrsa: crea una nueva clave privada
- -des3 - encripta la clave usando el cifrado DES
- -out server. CA.key: el nombre de su nueva clave
- 2048: la longitud, en bits, de la clave privada (consulte las advertencias)
- Guarde este certificado y la contraseña en un lugar seguro.
Paso 2. Cree una solicitud de firma de certificado
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
Las opciones explicadas:
- req: crea una solicitud de firma
- -verbose: muestra detalles sobre la solicitud a medida que se crea (opcional)
- -new - crea una nueva solicitud
- -key server. CA.key: la clave privada que acaba de crear anteriormente.
- -out server. CA.csr: el nombre de archivo de la solicitud de firma que está creando
- sha256: el algoritmo de cifrado que se utilizará para firmar solicitudes (si no sabe qué es esto, no lo cambie. Solo debe cambiarlo si sabe lo que está haciendo)
Paso 3. Complete la información tanto como sea posible
-
Nombre del país (código de 2 letras) [AU]:
nosotros
-
Nombre del estado o provincia (nombre completo) [Some-State]:
California
-
Nombre de la localidad (p. Ej., Ciudad) :
Silicon Valley
-
Nombre de la organización (p. Ej., Empresa) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nombre de la unidad organizativa (p. Ej., Sección) :
-
Nombre común (por ejemplo, FQDN del servidor o SU nombre) :
-
Dirección de correo electrónico :
Paso 4. Autofirme su certificado:
-
openssl ca -extensions v3_ca -out server. CA -igned.crt -keyfile server. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles server. CA.csr
-
Las opciones explicadas:
- ca: carga el módulo de la autoridad de certificación
- -extension v3_ca: carga la extensión v3_ca, imprescindible para su uso en navegadores modernos
- -out server. CA-signing.crt: el nombre de su nueva clave firmada
- -keyfile server. CA.key: la clave privada que creó en el paso 1
- -verbose: muestra detalles sobre la solicitud a medida que se crea (opcional)
- -autosign: le dice a openssl que está utilizando la misma clave para firmar la solicitud
- -md sha256: el algoritmo de cifrado que se utilizará para el mensaje. (Si no sabe qué es esto, no lo cambie. Solo debe cambiarlo si sabe lo que está haciendo)
- -enddate 330630235959Z: la fecha de finalización del certificado. La notación es YYMMDDHHMMSSZ donde Z está en GMT, a veces conocido como hora "Zulu".
- -infiles server. CA.csr: el archivo de solicitud de firma que creó en el paso anterior.
Paso 5. Inspeccione su certificado CA
- openssl x509 -noout -text -in server. CA.crt
-
Las opciones explicadas:
- x509: carga el módulo x509 para inspeccionar los certificados firmados.
- -noout: no genera el texto codificado
- -texto: muestra la información en la pantalla
- -in server. CA.crt: carga el certificado firmado
- El archivo server. CA.crt se puede distribuir a cualquier persona que use su sitio web o use certificados que usted planea firmar.
Parte 2 de 4: Creación de certificados SSL para un servicio, como Apache
Paso 1. Cree una clave privada
-
openssl genrsa -des3 -out server.apache.key 2048
-
Las opciones explicadas:
- openssl - el nombre del software
- genrsa: crea una nueva clave privada
- -des3 - encripta la clave usando el cifrado DES
- -out server.apache.key: el nombre de su nueva clave
- 2048: la longitud, en bits, de la clave privada (consulte las advertencias)
- Guarde este certificado y la contraseña en un lugar seguro.
Paso 2. Cree una solicitud de firma de certificado
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
Las opciones explicadas:
- req: crea una solicitud de firma
- -verbose: muestra detalles sobre la solicitud a medida que se crea (opcional)
- -nuevo - crea una nueva solicitud
- -key server.apache.key: la clave privada que acaba de crear anteriormente.
- -out server.apache.csr: el nombre de archivo de la solicitud de firma que está creando
- sha256: el algoritmo de cifrado que se utilizará para firmar solicitudes (si no sabe qué es esto, no lo cambie. Solo debe cambiarlo si sabe lo que está haciendo)
Paso 3. Utilice su certificado de CA para firmar la nueva clave
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
Las opciones explicadas:
- ca: carga el módulo de la autoridad de certificación
- -out server.apache.pem: el nombre del archivo del certificado firmado
- -keyfile server. CA.key: el nombre de archivo del certificado de CA que firmará la solicitud
- -infiles server.apache.csr: el nombre de archivo de la solicitud de firma del certificado
Paso 4. Complete la información tanto como sea posible:
-
Nombre del país (código de 2 letras) [AU]:
nosotros
-
Nombre del estado o provincia (nombre completo) [Some-State]:
California
-
Nombre de la localidad (p. Ej., Ciudad) :
Silicon Valley
-
Nombre de la organización (p. Ej., Empresa) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nombre de la unidad organizativa (p. Ej., Sección) :
-
Nombre común (por ejemplo, FQDN del servidor o SU nombre) :
-
Dirección de correo electrónico :
Paso 5. Guarde una copia de su clave privada en otra ubicación
Cree una clave privada sin contraseña para evitar que Apache le solicite una contraseña:
-
openssl rsa -in server.apache.key -out server.apache.unsecured.key
-
Las opciones explicadas:
- rsa: ejecuta el programa de cifrado RSA
- -in server.apache.key: el nombre de la clave que desea convertir.
- -out server.apache.unsecured.key: el nombre de archivo de la nueva clave no segura
Paso 6. Utilice el archivo server.apache.pem resultante junto con la clave privada que generó en el paso 1 para configurar su archivo apache2.conf
Parte 3 de 4: Creación de un certificado de usuario para autenticación
Paso 1. Siga todos los pasos en _Creación de certificados SSL para Apache_
Paso 2. Convierta su certificado firmado en un PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Parte 4 de 4: Creación de certificados de correo electrónico S / MIME
Paso 1. Cree una clave privada
openssl genrsa -des3 -out private_email.key 2048
Paso 2. Cree una solicitud de firma de certificado
openssl req -new -key private_email.key -out private_email.csr
Paso 3. Utilice su certificado de CA para firmar la nueva clave
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Paso 4. Convierta el certificado a PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Paso 5. Cree un certificado de clave pública para su distribución
openssl pkcs12 -export -out public_cert.p12 -in private_email.pem -clcerts -nokeys -name "Clave pública de WikiHow"
Consejos
Puede variar el contenido de las claves PEM emitiendo el siguiente comando: openssl x509 -noout -text -in certificate.pem
Advertencias
- Las claves de 1024 bits se consideran obsoletas. Las claves de 2048 bits se consideran seguras para los certificados de usuario hasta 2030, pero se consideran insuficientes para los certificados raíz. Tenga en cuenta estas vulnerabilidades al crear sus certificados.
- De forma predeterminada, la mayoría de los navegadores modernos mostrarán una advertencia de "Certificado no confiable" cuando alguien visite su sitio. Ha habido mucho debate sobre la redacción de estas advertencias, ya que los usuarios no técnicos pueden verse sorprendidos. A menudo es mejor utilizar una autoridad importante para que los usuarios no reciban las advertencias.
-
-