Bienvenidos a Nuestro Mundo - A Proyectos Beta!

En nuestra vida, desde que nacemos todo lo probamos, ensayamos y testeamos; así también erramos, caemos pero por sobre todo aprendemos. Es decir, todo lo que hacemos forma parte de una nueva experiencia, de un PROYECTO. El que siempre exista la posibilidad de mejorarlo es lo que lo convierte en BETA. En este blog queremos compartir contenidos de tipo informático con artículos de programación, software libre y propietario, redes, base de datos, noticias, experiencias, etc... y también de humor. Es un sitio de todos y para todos. Participá! Sos importante ...

Configurar SSL en Ubuntu 10.04 en Apache 2


Imagen de Apache con SSL
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
<IfModule mod_ssl.c>
# 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
</IfModule>

<IfModule mod_gnutls.c>
Listen 443
</IfModule>

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:
<VirtualHost *:443>
ServerAdmin josego85@gmail.com
ServerName ProyectosBeta
DocumentRoot /var/www/

<Directory /var/www/pruebaSSL>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

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
</VirtualHost>

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.

Imagen de prueba de SSL en apache2

Imagen de prueba de SSL en apache2

Imagen de prueba de SSL en apache2
Y esto es todo. XD
Imagen: El Blog de Alvaro Garcia Solano
Fuente: Joe Fallon

7 comentarios:

Anónimo dijo...

muy bueno el aporte men.!!

Joandri_03 dijo...

Tremendo aporte... Se te agradece de antemano...

Anónimo dijo...

Muchas Gracias por el aporte, me ha sido muy útil.

acurax dijo...

buenas, me sirvio el post pero donde debo de crear el directorio pruebaSSL????

proyectosbeta dijo...

@acurax: generalmente por defecto en ubuntu el directorio de tu server(apache) donde están localizadas tus sitios web se encuentran en /var/www. Dentro de esa dirección deberías de crear la carpeta pruebaSSL. La dirección sería /var/www/pruebaSSL

Anónimo dijo...

Hay un error en el codigo, hay un espacio de mas en la linea < IfModule mod_ssl.c> cuando configuran los puertos!!!

proyectosbeta dijo...

@Anonimo: muchas gracias por avisar. Ahora ya esta corregido. XD

Publicar un comentario

Expresate y se crítico en tu vida. XD

Recibir Artículos Por Correo

Categorías

acertijos (1) adsense (1) adwords (1) AJAX (1) algoritmos (8) android (32) apple (5) autocad (1) base de datos (16) bash (1) becas (1) benchmark (1) blogger (2) blogs (27) bsd (1) buscadores (22) c# (1) CAD (1) camaras digitales (1) casting (1) CentOS (9) certificados (1) ciencia (1) CLEI (5) cloud computing (3) codigo fuente (9) Compiladores (4) Concursos (14) conferencias (24) congresos (6) consolas (7) criptografia (1) css (6) curso online (10) cursos (14) debian (50) Diseño (11) edicion video (7) emuladores (3) encuestas (2) entrevistas (9) ERTIC (1) etico (1) eventos (87) extjs (2) facebook (18) flash (2) flicker (1) FLISOL (13) geek (6) geoserver (2) GIMP (8) gis (29) Google (48) hacking (1) Hardware (30) haskell (3) HTML 5 (20) humor (261) imagenes (238) Ingenieria (14) internet (1) iphone (3) Java (42) Javascript (14) JQuery (3) juegos (36) libros (5) Linux (248) MAC (1) manga (2) Manuales (10) mapquest (1) MapServer (5) matematica (2) Microsoft (26) Microsoft Windows (27) Moviles (16) musicas (7) mysql (3) navegadores (41) newsletters (1) nokia (2) Noticias cientificas (7) Noticias Informaticas (39) Noticias varias (14) nube (1) openlayers (13) openstreetmap (10) opiniones (1) oracle (9) Paraguay (102) photoshop (1) Php (12) podcast (1) postgres (7) Programacion (135) prolog (1) proyectos (10) python (3) radio (6) Recursos (112) redes (10) Redes Sociales (62) resumenes (1) Revistas (57) ruby (2) seguridad (23) seminarios (6) sencha (2) SEO (3) Series (1) Silverlight (1) Sistema Operativo (27) smartphone (1) Software Libre (198) sun (2) tablet (19) tecnologia (24) tecnoPyensis (6) Testing (5) Trabajo (6) trucos (22) Twitter (29) Ubuntu (152) varios (113) videos (173) virtualizacion (14) visual basic net (2) web (86) wikipedia (1) Windows 7 (23) windows 8 (1) Windows XP (2) wordpress (5) xml (1)

Entradas Aleatorias

Seguidores

Últimos Comentarios

Archivos del Blog