InicioLinuxGeneración e instalación de certificados SSL - Apache



Pasos a seguir para generar e instalar un certificado SSL en un servidor web Apache

Para instalar un certificado SSL firmado por Verisign, hacen falta los siguientes files:
1) privkey.pem (Key encriptada)
2) server.key (Key sin encriptar)
3) server.csr (Certificate Sign Request)
4) server.crt (o server.cert) (Certificado)



Para generar los ficheros ejecutamos el siguiente comando:

[user@equipo user]$ openssl req -newkey rsa:2048 -new > server.csr

Este comando va a pedir una serie de datos correspondientes al dominio (o dominios) donde se utilizará el certificado, todos los campos son puramente informativos, salvo CommonName que debe ser exactamente el dominio donde se usará el certificado.
En sunOS el path del comando openssl suele ser: /usr/local/ssl/bin/openssl

Si se va a realizar la renovacion de un certificado se puden obtener los datos de la siguiente URL, clickeando en "renew", y luego introduciendo el Common Name a renovar.




Ejemplo de salida del comando anterior:

[user@equipo user]$ openssl req -newkey rsa:2048 -new > server.csr

Generating a 2048 bit RSA private key
............................+++
..............................+++
writing new private key to 'privkey.pem'
Enter PEM pass phrase:password
Verifying - Enter PEM pass phrase:password
-----
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) [AU]:AR
State or Province Name (full name) [Some-State]: Argentina
Locality Name (eg, city) []:Argentina
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Empresa
Organizational Unit Name (eg, section) []:Empresa
Common Name (eg, YOUR name) []:empresa.empresa.com.ar
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: [Solo presionar ENTER]
An optional company name []: [Solo presionar ENTER]
[user@equipo user]$



Este comando va crear privkey.pem y server.csr

[user@equipo user]$ls -l
total 8
-rw-r--r-- 1 user group 963 Feb 3 10:20 privkey.pem
-rw-r--r-- 1 user group 761 Feb 3 10:20 server.csr
[user@equipo user]$



Este privkey.pem va a estar encriptado bajo la passphrase que colocamos en el paso anterior, lo que significa que cada vez que se levante el apache, pediría la passphrase para utilizar la key. Para evitar esto, podemos quitar la passphrase de privkey.pem y generar el server.key sin la passphrase, con el siguiente comando:

[user@equipo user]$ openssl rsa -in privkey.pem -out server.key
Enter pass phrase for privkey.pem: password
writing RSA key
[user@equipo user]$


Luego de ejecutar estos dos comandos, vamos a tener:
1) server.key
2) server.csr

[user@equipo user]$ ls -l
total 12
-rw-r--r-- 1 user group 963 Feb 3 10:20 privkey.pem
-rw-r--r-- 1 user group 761 Feb 3 10:20 server.csr
-rw-r--r-- 1 user group 887 Feb 3 10:21 server.key
[user@equipo user]$




Para evitar errores con los certificados renombramos los mismos colocando el CommonName seguido de la extensión correspondiente, siguiendo el ejemplo anterior quedaría:

[user@equipo user]$ ls -l
total 12
-rw-r--r-- 1 user group 963 Feb 3 10:20 empresa.empresa.com.ar.pem
-rw-r--r-- 1 user group 761 Feb 3 10:20 empresa.empresa.com.ar.csr
-rw-r--r-- 1 user group 887 Feb 3 10:21 empresa.empresa.com.ar.key
[user@equipo user]$


El siguiente paso, es solicitar a VeriSign (o la entidad deseada) el certificado correspondiente a nuestro server.key. Para esto, la entidad va a solicitar el server.csr (Certificate Sign Request). Al cabo de unos días, la entidad emitirá un archivo server.cert (o server.crt) que deberá ser utilizado única y exclusivamente con el server.key que se utilizó para generar el server.csr

Luego, lo que queda es configurar el apache para que utilice nuestros archivos. Esto se realiza colocando las siguientes directivas en la configuración del virtualhost correspondiente a nuestro dominio seguro:

SSLCertificateFile /path/to/certs/server.cert
SSLCertificateKeyFile /path/to/certs/server.key




Debido a que el server.key y el server.cert tienen que estar SIEMPRE relacionados, hay que verificar que el cert instalado sea correspondiente a esa key.


Si instalamos un cert con una key que no corresponde, luego de reiniciar el apache, en el error.log, veremos un error similar al siguiente:

[Thu Nov 04 17:06:18 2010] [error] Unable to configure RSA server private key
[Thu Nov 04 17:06:18 2010] [error] SSL Library Error: 185073780 error:0B080074:x509
certificate routines:X509_check_private_key:key values mismatch





Datos archivados del Taringa! original
1puntos
1,541visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
13visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
pauuupauu🇦🇷
Usuario
Puntos0
Posts8
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.