14 febrero 2016

Como generar una clave SSL, un fichero CSR y un certificado auto firmado para un sitio web

Si desea convertir su sitio web de HTTP a HTTPS, es necesario obtener un certificado SSL de una organización válida como Verisign o Thawte. También puede generar un certificado SSL auto firmado para fines de prueba.
En este artículo, vamos a repasar cómo generar el archivo de clave privada (server.key), el certificado de archivo de solicitud de firma (server.csr) y el archivo de certificado de servidor web (server.crt) que se debe utilizar en un servidor web.

Convención de nombres de los archivos Key, CSR y CRT

Me gusta nombrar los archivos con el nombre de dominio de la URL HTTPS que va a usar este certificado. Esto hace que sea más fácil de identificar y mantener.
En lugar de server.key, utilizo www.thegeekstuff.com.key
En lugar de server.csr, utilizo www.thegeekstuff.com.csr
En lugar de server.crt, utilizo www.thegeekstuff.com.crt


1. Generar clave secreta en el servidor que ejecuta el servidor web

En primer lugar, generar una clave privada en el servidor Linux que se ejecuta el servidor web con 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 se parece a lo siguiente.
# 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)

Utilizando la clave generada arriba, se debe generar un archivo de solicitud de certificado (CSR) utilizando 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. Generar un certificado SSL autofirmado

Con fines de prueba, se puede generar un certificado SSL autofirmado que es válido por 1 año con 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 utilizar este método para generar claves SSL y archivos CSR y CRT para servidores web,en la mayoría de los sistemas Linux, Unix, incluyendo Ubuntu, Debian, CentOS, Fedora y Red Hat.

4. Obtener un certificado SSL válido de prueba (Opcional)

En lugar de firmar usted mismo, también puede generar un certificado SSL de prueba válida de Thawte, es decir antes de gastar el dinero en la compra de un certificado, también se puede obtener un certificado SSL de 21 días de prueba totalmente funcional válido de Thawte. Una vez funciona este certificado válido, puede decidir comprarlo a través de Thawte o cualquier otra organización de firma SSL.Este paso es opcional y no es realmente necesario. Con fines de prueba, siempre se puede utilizar el certificado autofirmado que se ha generado a partir de la etapa anterior.Para generarlo, vaya a la página de solicitud de certificado de prueba Thawte y haga lo siguiente:
  • Seleccione "certificados de servidor Web SSL (Todos los servidores)" en el "seleccione su certificado de prueba".
  • No marque el PKCS # 7 casilla de verificación en el marco del "certificado de configurar"
  • Copie y pegue el archivo *.csr que generó más arriba en el cuadro de texto debajo de "solicitud de firma de certificado (CSR)"
  • Haga clic en siguiente en la parte inferior, lo que dará que un certificado de prueba gratuito de 21 días.
Copiar / pegar 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-----

Traducido con Google Translate de The Geek Stuff

No hay comentarios: