Red de conocimiento informático - Material del sitio web - Cómo generar un certificado CA

Cómo generar un certificado CA

En circunstancias normales, si puede encontrar un certificado disponible, puede usarlo directamente. Sin embargo, parte de la información del certificado es incorrecta o no coincide con el host donde está implementado el certificado, lo que puede hacer que el navegador le indique que el certificado está disponible. no es válido, pero esto no afecta su uso.

Las situaciones en las que necesita generar manualmente un certificado incluyen:

No se encontró ningún certificado disponible

Es necesario configurar SSL bidireccional, pero el certificado del cliente falta

Se requiere certificado personalizado

Primero, ya sea que esté utilizando Cygwin en Linux o Windows, asegúrese de tener instalado el paquete OpenSSL.

1. Cree el archivo de clave del certificado raíz (cree su propia CA) root.key:

openssl genrsa -des3 -out root.key

La salida es:

[lenin@archer ~]$ openssl genrsa -des3 -out root.key

Genera clave privada RSA, módulo de 512 bits de longitud

. .............++++++++++++

...++++++++++++ < /. p>

e es 65537 (0×10001)

Ingrese la frase de contraseña para root.key: ← Ingrese la nueva contraseña

Verificación: ingrese la contraseña para root.key: ← Ingrese el contraseña nuevamente

2. Cree el archivo de solicitud de certificado raíz root.csr:

openssl req -new -key root.key -out root.csr

la salida es:

[lenin@archer ~]$ openssl req -new -key root.key -out root.csr

Ingrese la frase de contraseña para root.key: ← Ingrese el contraseña creada previamente

Se le pedirá que ingrese cierta información que se incluirá

en su solicitud de certificado.

La información que está a punto de ingresar se denomina "nombre distinguido" o "DN".

Hay muchos campos, pero algunos se pueden dejar en blanco.

Algunos campos tienen valores predeterminados

Si ingresa "...", el valor predeterminado es "...".

Algunos campos tendrán un valor predeterminado.

Si ingresa "'', el campo quedará en blanco.

--

Nombre del país (código de dos letras) [AU]: CN ← Código de país, ingrese CN para representar a China

Nombre del estado o provincia (nombre completo) [Some-State]: BeiJing ← Nombre completo de la provincia, Pinyin

Nombre del lugar (por ejemplo, ciudad) []: BeiJing ← Nombre completo de la ciudad, Pinyin

Nombre de la organización (por ejemplo, empresa) []: Internet Widgits Pty Ltd. []: Internet Widgits Pty Ltd. [ ]:Internet Widgits Pty Ltd. []:Internet Widgits Pty Ltd.Internet Widgits Pty Ltd]:MyCompany Corp.← Nombre de la empresa en inglés

Unidad organizativa Nombre (p. ej., sección) []:← Se puede dejar en blanco

Nombre común (p. ej., su nombre) []: ← Ninguno todavía.

Ingrese

Dirección de correo electrónico[]:admin@mycompany.com ← Dirección de correo electrónico, complétela como desee

Ingrese los siguientes atributos "extra"

para enviar con su solicitud de certificado

Desafío de contraseña[]: ← Se puede dejar en blanco

Nombre de empresa opcional[]: ← Crear una raíz por diez años a partir de la actual fecha Certificado root.com. Certificado raíz root.crt:

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.req -out root.crt

La salida es :

[lenin@ archer ~]$ openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt

Firma

subject=/C= CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./emailAddress=admin@mycompany.com

Obteniendo clave privada

Ingrese la frase de contraseña para root.key: ←Ingrese la frase de contraseña para root.key

4. Cree la clave de certificado del servidor server.key:

openssl genrsa -des3 -out server .key 2048

La salida es:

[lenin@archer ~] $ openssl genrsa -out server.key 2048

Generar clave privada RSA, 2048 bits Módulo largo

....+++

.................... .................. .................+++

e es 65537 (0×10001)

Cuando ejecute Cuando lo haga, se le solicitará la contraseña que se utilizará para cifrar el archivo clave (el parámetro des3 se refiere al algoritmo de cifrado , pero, por supuesto, puede utilizar cualquier otro algoritmo que considere seguro). Si desea leer el archivo (a través del comando openssl o API), debe ingresar una contraseña. Puede eliminar su contraseña si le resulta inconveniente, ¡pero asegúrese de tomar otras medidas de protección!

Comando para eliminar la contraseña del archivo de claves:

openssl rsa -in server.key -out server.key

Crea una solicitud de certificado de servidor. archivo server.csr:

openssl req -new -key server.key -out server.csr

La salida es:

[lenin@archer ~] $ openssl req -new -key server.key -out server.req

Se le pedirá que ingrese

información que se incluirá en su solicitud de certificado

.

La información que está a punto de ingresar es lo que se llama "nombre distinguido" o DN.

Lo que está a punto de ingresar es lo que se llama un nombre distinguido o DN.

Hay muchos campos, pero puedes dejar algunos en blanco.

Para algunos campos, habrá un valor predeterminado,

Si ingresa '.' /p>

Si ingresa '', este campo quedará en blanco.

--

Nombre del país (código de 2 letras) [AU]:CN ←Nombre del país, ingrese CN para China

Nombre del estado o provincia (nombre completo ) [ Algún estado]: Beijing ← Nombre de la provincia, Pinyin

Nombre del lugar (por ejemplo, ciudad) []: Beijing ← Nombre de la ciudad, Pinyin

Nombre de la organización (por ejemplo, empresa) [Widgits de Internet []:www.mycompany.com ← mycompany.com.com ← Nombre de host del servidor, si no se completa correctamente, el navegador informará que el certificado no es válido, pero no afectará el uso

Dirección de correo electrónico []:admin@mycompany. com ← Dirección de correo electrónico, se puede completar

Ingrese los siguientes atributos "extra"

Se enviará con el certificado solicitar

Una contraseña de desafío []: ← Puede dejarla en blanco

Nombre de la empresa opcional []: ← Nombre de la empresa opcional []: ← Puede dejarla en blanco

6. Crear certificado de servidor server.crt Dos días a partir de la fecha actual Válido dentro del año:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.key -CAserial root. srl -CAcreateserial -in server.csr -out server.crt

La salida es:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req días 730 -sha1 -extensiones v3_req -CA root.crt -CAkey root.key -CAcreateserial - in server.csr -out server.crt

Firma ok

subject=/ C= CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www. mycompany.com/emailAddress=admin@mycompany.com

Obtención de la clave privada de CA

Ingresar la frase de contraseña para root.key: ← Ingrese la contraseña que creó anteriormente

7. Cree el archivo de clave de certificado del cliente client.key:

openssl genrsa -des3 -out client.key 2048

El resultado es:

[lenin@ archer ~]$ openssl genrsa -des3 -out client.key 2048

Generar clave privada RSA, 2048 bits módulo largo

... ..... ................................. ................................ ................. .......+++

............ .................. ... ................................. ........ ........... ...................

+++

e es 65537 (0×10001)

Ingrese la frase de contraseña para client.key: ← Ingrese una nueva contraseña

Verificación - Ingrese la frase de client.key para: ← Vuelva a ingresar la frase de contraseña para client.key: ← Ingrese una nueva contraseña

8. Cree el archivo de solicitud de certificado de cliente client.csr:

openssl req -new -key client .key -out client.csr

La salida es:

[lenin@archer ~]$ openssl req -new -key client.key -out client.csr

Ingrese la frase de contraseña para client.key: ← Ingrese la contraseña que creó en el paso anterior

La información que se le pedirá que ingrese se incluirá en su solicitud de certificado.

Lo que está a punto de ingresar es lo que se llama un nombre distinguido o DN.

Hay muchos campos, pero algunos se pueden dejar en blanco.

Algunos campos tendrán un valor predeterminado,

Si ingresas '.' Si ingresa '' y el campo quedará en blanco.

--

Nombre del país (código de 2 letras) [AU]:CN ←Nombre del país, ingrese CN para China

Nombre del estado o provincia (nombre completo ) [ Algún estado]: Beijing ← Nombre de la provincia, Pinyin

Nombre del lugar (por ejemplo, ciudad) []: Beijing ← Nombre de la ciudad, Pinyin

Nombre de la organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]: MyCompany Corp.← Nombre de la empresa en inglés

Nombre de la unidad organizativa (por ejemplo, departamento) []: ← Se puede dejar en blanco

Nombre común ( por ejemplo, su nombre)[ ]:Lenin ← su propio nombre en inglés. Puede completar cualquier dirección de correo electrónico

Dirección de correo electrónico []:admin@mycompany.com ← Dirección de correo electrónico, puede completar cualquier

Ingrese los siguientes atributos "extra"

Para ser enviado, ingrese los siguientes atributos "extra"

Para ser enviado, ingrese los siguientes atributos "extra"

Para ser enviado, ingrese el siguientes atributos "extra"

Para enviar, ingrese los siguientes atributos "extra"

Para enviar, ingrese los siguientes atributos "extra"

Para enviarlo, ingrese los siguientes atributos "extra" ← Opcional de

Un nombre de empresa opcional []: Opcional ←

9. Cree un certificado de cliente válido por dos años desde la fecha actual.

Cree un certificado de cliente client.crt que sea válido por dos años a partir de la fecha actual:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root .srl -CAcreateserial root.key -CAcreateserial root.srl -CAcreateserial root.srlsrl -CAcreateserial - in client.csr -out in client.csr -out client.crt

La salida es:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.key -CAcreateserial -in client.csr -out client.crt

Firma ok

subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www. mycompany.com/emailAddress=admin@mycompany.com

Obtención de CA Clave privada

Ingrese la frase de contraseña para root.key: ← Ingrese la contraseña creada anteriormente

10. Coloque el archivo de certificado de cliente client.crt y el archivo de clave de certificado de cliente client.key en el paquete de instalación del certificado del cliente client.pfx:

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

El resultado de salida es:

[ lenin@archer ~]$ openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

Ingrese la frase de contraseña para client.key: ← Ingrese la contraseña creada arriba

Ingrese la contraseña de exportación: ← Ingrese la nueva contraseña que se usará para proteger el certificado del cliente y se requiere al instalar el certificado en el cliente

Verificación: ingrese la contraseña de exportación : ← Confirmar contraseña

11. Guarde el archivo generado para realizar una copia de seguridad, donde server.crt y server.key son los archivos de certificado utilizados al configurar SSL unidireccional, client.crt es el archivo de certificado utilizado al configurar SSL bidireccional, y client.pfx es la configuración El archivo de certificado instalado por el cliente durante SSL bidireccional

El archivo .crt y .key se pueden fusionar en un solo archivo, y los dos archivos se combinados en un archivo .pem (simplemente cópielo directamente)

Referencia: /s/blog_4fd50c390101891c.html

Los certificados x509 generalmente usan tres tipos de texto, a saber, clave, csr y crt .

La clave es la clave privada SSL, utilizada para los archivos de certificado de instalación del cliente. La clave es la clave privada de la red openssl, que generalmente utiliza el algoritmo rsa.

Csr es el archivo de solicitud de certificado, utilizado para solicitar certificados. Al crear un archivo csr, debe firmar la aplicación con su propia clave privada o puede configurar una clave.

Crt es el texto del certificado después de la certificación de CA (en realidad, crt en Windows. El firmante usa su propia clave para firmar el certificado por usted).

1. Generación de clave

opensslgenrsa -des3 -out server.key 2048

Esto es para generar clave privada rsa, algoritmo des3, formato openssl, 2048 bits. fortaleza. server.key es el nombre del archivo clave. Para generar dicha clave, se requiere una contraseña de al menos cuatro dígitos. Se puede generar una clave sin contraseña mediante:

opensslrsa -in server.key -out server.key

server.key es la versión sin contraseña.

2. Generar CA crt

opensslreq -new -x509 -key server.key -out ca.crt -days3650

El archivo ca.crt generado utiliza Firme el archivo server.csr a continuación.

Método de generación 3.csr

opensslreq -new -key server.key -out server.csr

Debe ingresar el país, región, organización y correo electrónico en secuencia de correo. ¿Lo más importante? Tener un nombre común, que puede ser tu nombre o un nombre de dominio. Si solicita https, debe coincidir con el nombre de dominio; de lo contrario, se activará una alerta del navegador. El archivo csr generado será firmado por la CA para formar el propio certificado del servidor.

Método de generación 4.crt

El archivo CSR debe estar firmado por una CA para formar un certificado. El archivo se puede enviar a Verisign y otros lugares para su verificación. mucho dinero. ¿Por qué? No hagas CA tú mismo.

opensslx509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key-CAcreateserial -out server.crt

Ingrese la clave de la clave y están listos. Se genera el certificado. La opción -CA especifica el certificado csr que se firmará, la opción -CAkey especifica la clave utilizada para firmar, -CAserial especifica el archivo de número de serie y -CAcreateserial especifica el archivo que se generará automáticamente si no existe.

Finalmente se generará la clave privada: server.key y el certificado SSL autocertificado: server.crt

Certificados fusionados:

catserver.key servidor.crt > servidor.pem