Configurar SSL en Ubuntu 10.04 en Apache 2

Requisitos: tener instalado Apache 2.2.14.
Para verificar la versión de tu apache, entramos a la consola y escribimos:
apache2 -v

El paquete que se necesitara para SSL para trabajar tendrá que ser instalado. Se supone que el servidor web ya está instalado, configurado y funcionando. Si no, hay muchas guías en Internet que explican eso.

Escriba en consola el siguiente comando para instalar openssl:
sudo aptitude install openssl

Crear un certificado de solicitud de firma:
El primer paso es generar una clave. Para generar la solicitud de firma de certificado (CSR), cree una clave (por ejemplo, server.key).

Ejecute el siguiente comando en una terminal para crear la clave:
openssl genrsa -des3 -out server.key 4096

Ahora tenemos que escribir una frase clave para nuestro server.key. Trata que sea una mezcla entre números, caracteres especiales y letras. Es muy recomendable esta forma.
Luego te va a volver a pedir la frase clave y volve a escribir la misma.

Escriba en la consola:
openssl genrsa -out server.key 4096

Aparecerá esto:
Generating RSA private key, 4096 bit long modulus
……………………………………………………………………..
…………………………..++
………………………………….++
e is 65537 (0x10001)

Asegúrese de que el archivo server.key sólo es legible por el root y escriba en la consola:
sudo chmod 400 server.key

Para verificar el nombre DNS o la dirección IP de nuestro servidor, nos dirigimos:
sudo nano /etc/apache2/httpd.conf

En caso si no hay nada escrito escribimos:
ServerName ProyectosBeta

OBS:
Para este ejemplo configuramos a nuestro ProyectosBeta, pero podes hacerlo para cualquier dominio. Este nombre nos sirve para completar el Common Name que nos pedirá en el siguiente paso.

Después que se crea la clave, la solicitud de firma de certificado (CSR) se crea con la llave y ejecute el siguiente comando en la consola:
openssl req -new -key server.key -out server.csr

Se requerirá la siguiente información y lo completamos:
Nombre País (Country Name): PY
Estado o Provincia (State or Province Name): Asuncion
Locality Name: Asuncion
Nombre de la organización (Organization Name): ProyectosBeta
Nombre de la Unidad de Organización (Organizational Unit Name): ProyectosBeta
Nombre común (debe coincidir con el nombre de dominio por ejemplo ProyectosBeta) (Common Name): ProyectosBeta
Dirección de correo electrónico (Email Address): josego85@gmail.com
Desafío Contraseña (Challenge Password)(vacío nomas):
Nombre de la empresa (Company Name) (vacío nomas):

Si el Common Name no coincide con el nombre DNS o la dirección IP del servidor web, el cliente recibirá una “falta de coincidencia de dominio” de error. Además, los valores predeterminados para las instrucciones se almacenan en /etc/ssl/openssl.cnf.

Creación y obtención de un Certificado
Entramos a la consola y escribimos:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Aparecerá esto:
Signature ok
subject=/C=PY/ST=Asuncion/L=Asuncion/O=ProyectosBeta/OU=ProyectosBeta/CN=ProyectosBeta/emailAddress=josego85@gmail.com
Getting Private key

Una vez que este todo correcto, el certificado se creará y se almacena en el archivo server.crt.

Instalando los archivos de certificado y la clave
Para instalar el certificado y los archivos de clave, escriba en la consola:
sudo mkdir /etc/apache2/ssl/
sudo cp server.crt /etc/apache2/ssl/
sudo cp server.key /etc/apache2/ssl/

Luego borramos las claves que creamos en el directorio actual.
Ojo: del directorio actual y no en el que acabamos de crear. (/etc/apache2/ssl/).
Escribimos en la consola:
sudo rm server.crt server.csr server.key

Activar SSL en Apache
Para habilitar el módulo SSL en Apache, escriba en consola:
sudo a2enmod ssl

Y aparecerá esto en la pantalla:
Enabling module ssl.
See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.
Run ‘/etc/init.d/apache2 restart’ to activate new configuration!

Habilitar máquinas virtuales SSL en el archivo /etc/apache2/ports.conf y escribimos en consola:
sudo nano /etc/apache2/ports.conf

Agregamos dentro de → NameVirtualHost *:443 y quedaría como muestra abajo.
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80

# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
NameVirtualHost *:443
Listen 443

Listen 443

Creación de un host virtual SSL basada en el nombre
Crear un nombre de un host virtual SSL en /etc/apache2/sites-available/.

Escribimos en consola:
sudo nano /etc/apache2/sites-available/ProyectosBeta

Seguramente no aparecera nada y escribimos lo siguiente:

ServerAdmin josego85@gmail.com
ServerName ProyectosBeta
DocumentRoot /var/www/

Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/ProyectosBeta_ssl.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/ProyectosBeta_ssl-access.log combined

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown

Ojo:
Tenemos que tener creada la carpeta pruebaSSL y dentro de ahí un index.php (de prueba).
Esto es para probar nuestro https.

Habilitar el sitio dentro de Apache y escribir en la consola:
sudo a2ensite ProyectosBeta

Aparecerá lo siguiente por pantalla:
Enabling site ProyectosBeta.
Run ‘/etc/init.d/apache2 reload’ to activate new configuration!

Para activar los cambios reiniciamos Apache y escribimos en la consola:
sudo service apache2 restart

Para probar el SSL en nuestro sitio escribimos en el navegador:
https://localhost/pruebaSSL

Te va a avisar que no es una pagina de confianza, pero como nosotros hicimos el certificado sabemos que lo es. Lo único que debemos de hace es presionar el botón Agregar excepción.

Y esto es todo.😄

FUENTE

luego quiero agregar un detalle que es como forzar apache a utilizar htpps.

nos vamos al arrchivo que tenemos en este caso :
/etc/apache2/sites-available/ProyectosBeta

y agregamos :
abajo de . –Directory /var/www/—


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
—————— directory/——————————
luego de todo guardamos y escribimos en consola lo siguiente .
a2enmod rewrite

y ahora si resetiamos al apache:

sudo service apache2 restart

——————————-

saludos . By miguel andres casas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: