GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo generar una clave SSL, una CSR y un certificado autofirmado para Apache

Si desea convertir su sitio web de HTTP a HTTPS, debe obtener un certificado SSL de una organización válida como Verisign o Thawte. También puede generar un certificado SSL autofirmado con fines de prueba.

En este artículo, revisemos cómo generar un archivo de clave privada (server.key), un archivo de solicitud de firma de certificado (server.csr) y un archivo de certificado de servidor web (server.crt) que se puede usar en el servidor Apache con mod_ssl .

Convención de nomenclatura de archivos de clave, CSR y CRT

Por lo general, me gusta nombrar los archivos con el nombre de dominio de la URL HTTPS que usará este certificado. Esto hace que sea más fácil de identificar y mantener.

  • En lugar de server.key, uso www.thegeekstuff.com.key
  • En lugar de server.csr, uso www.thegeekstuff.com.csr
  • En lugar de server.crt, uso www.thegeekstuff.com.crt

1. Generar clave privada en el servidor que ejecuta Apache + mod_ssl

Primero, genere una clave privada en el servidor Linux que ejecuta el servidor web Apache usando el comando openssl como se muestra a continuación.

# openssl genrsa -des3 -out www.thegeekstuff.com.key 1024
Generating RSA private key, 1024 bit long modulus
.......................................++++++
...................................................++++++
e is 73547 (0x01001)
Enter pass phrase for www.thegeekstuff.com.key:
Verifying - Enter pass phrase for www.thegeekstuff.com.key:

# ls -ltr www.thegeekstuff.*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key

La clave privada generada tiene el siguiente aspecto.

# cat www.thegeekstuff.com.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,485B3C6371C9916E

ymehJu/RowzrclMcixAyxdbfzQphfUAk9oK9kK2
jadfoiyqthakLKNqw9z1MoaqkPyqeHevUm26no
AJKIETHKJADFS2BGb0n61/Ksk8isp7evLM4+QY
KAQETKjdiahteksMJOjXLq+vf5Ra299fZPON7yr
-----END RSA PRIVATE KEY-----

2. Generar una solicitud de firma de certificado (CSR)

Usando la clave generada arriba, debe generar un archivo de solicitud de certificado (csr) usando openssl como se muestra a continuación.

# openssl req -new -key www.thegeekstuff.com.key -out www.thegeekstuff.com.csr
Enter pass phrase for www.thegeekstuff.com.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:California
Locality Name (eg, city) [Newbury]:Los Angeles
Organization Name (eg, company) [My Company Ltd]:The Geek Stuff
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []: thegeekstuff
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

# ls -ltr www.thegeekstuff.*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key
-rw-r--r-- 1 root root   664 Jun 13 20:35 www.thegeekstuff.com.csr

3. Genere un certificado SSL autofirmado

Para fines de prueba, puede generar un certificado SSL autofirmado que es válido por 1 año usando el comando openssl como se muestra a continuación.

# openssl x509 -req -days 365 -in www.thegeekstuff.com.csr -signkey www.thegeekstuff.com.key -out www.thegeekstuff.com.crt
Signature ok
subject=/C=US/ST=California/L=Los Angeles/O=thegeekstuff/OU=IT/CN=www.thegeekstuff.com
Getting Private key
Enter pass phrase for www.thegeekstuff.com.key:

# ls -l www.thegeekstuff*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key
-rw-r--r-- 1 root root   664 Jun 13 20:35 www.thegeekstuff.com.csr
-rw-r--r-- 1 root root   879 Jun 13 20:43 www.thegeekstuff.com.crt

# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----


Puede usar este método para generar archivos Apache SSL Key, CSR y CRT en la mayoría de los sistemas Linux y Unix, incluidos Ubuntu, Debian, CentOS, Fedora y Red Hat.

4. Obtenga un certificado SSL de prueba válido (opcional)

En lugar de firmarlo usted mismo, también puede generar un certificado SSL de prueba válido desde thawte. es decir, antes de gastar el dinero en la compra de un certificado, también puede obtener un certificado SSL de prueba de 21 días completamente funcional y válido de Thawte. Una vez que este certificado válido funcione, puede decidir comprarlo en Thawte o en cualquier otra organización de firma SSL.

Este paso es opcional y no es realmente necesario. Para fines de prueba, siempre puede usar el certificado autofirmado que se generó en el paso anterior.

Vaya a la página de solicitud de certificado de prueba de Thwate y haga lo siguiente:

  • Seleccione "Certificado de servidor web SSL (todos los servidores)" en "seleccione su certificado de prueba".
  • No marque la casilla de verificación PKCS #7 debajo de "configurar certificado"
  • Copie/pegue el archivo *.csr que generó arriba en el cuadro de texto debajo de "solicitud de firma de certificado (CSR)"
  • Haga clic en siguiente en la parte inferior, que le dará un certificado de prueba gratuito de 21 días.


Copie/pegue el certificado de prueba en el archivo www.thegeekstuff.com.crt como se muestra a continuación.

# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----

Linux
  1. Cómo generar una solicitud de firma de certificado (CSR) en Linux

  2. ¿Cómo hacer que Apache 2 deje de pedir una contraseña para un certificado SSL?

  3. Cómo generar una Clave y CSR en cPanel para su Certificado SSL

  4. ¿Cómo generar una solicitud de firma de certificado (CSR) con OpenSSL?

  5. Cómo crear un certificado SSL autofirmado en Ubuntu 18.04

¿Cómo generar CSR en Plesk 17?

¿Cómo generar una clave CSR a través de WHM?

¿Cómo generar CSR e instalar Certificado SSL en SolidCP?

¿Cómo generar CSR's para SSL en cPanel?

Generar CSR y clave privada en Plesk

Cómo generar una CSR (Solicitud de firma de certificado) en Linux