martes, 13 de mayo de 2008

Peticion de Certificado para Apache

El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto para plataformas Unix, Windows, Macintosh y otras, que implementa el protocolo HTTP. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

En este pequeño manual explicaremos brevemente como configurar apache de forma segura (https).

Primero instalamos el servicio web:
# apt-get install apache2

Instalamos el paquete openssl
# apt-get install openssl
Para la configuracion de nuestra pagina web (de lo que mostrara) es en /var/www/index.html Aca publicare un sencillo contenido de lo que contiene este archivo:


Ahora empezamos con la configuracion en los archivos del apache.
Para poder crear un sitio certificado bajo SSL (https) con apache. Para ello ahi que copiar los ficheros que nos firma la entidad y el certificado de la misma entidad en /etc/apache2/ssl si no disponen del directorio ssl, ahi que crearlo y solo sirve para guardar esto en algún lado y que apache lo vea. Al apache2 hay que indicarle que también escuche por el puerto 443 que es el del Secure Socket Layer (ssl) para eso se modifica el fichero /etc/apache2/ports.conf para que ponga:

Listen 80
Listen 443

Ahora tenemos que indicarle apache que soporte el ssl para ello instalamos el modulo ssl: # apt-get install libapache-mod-ssl
Una vez instalado esto le decimos a apache que cargue el modulo, tecleando lo siguiente :
a2enmod ssl

Y con esto ya solo nos queda configurar nuestro fichero de sites-availables donde tenemos nuestra configuración para poder acceder a nuestro site mediante https.
editamos el fichero /etc/apache2/sites-availables/default y creamos el virtual host adecuado para el puerto 443 :
Poniendo en el DocumentRoot el lugar donde tenemos nuestra pagina. Le indicamos que utilizamos certificados (SSLEngine on) y le decimos donde tiene que que leer el certificado (SSLCertificateFile) y la clave privada de este (SSLCertificateKeyFile).

Finalmente despues de guardar el fichero default nos vamos al /etc/apache2/sites-enabled y hacemos un vinculo simbólico al fichero default del sites-availables y le llamamos default-000
ln -s ../sites-availables/default default-000

Ahora solo nos queda generamo el certificado para que la entidad certificadora la firme:
# openssl req -new -nodes -out peticion-apache.pem -keyout keypriv.pem

Los dos archivos generados los guardaremos en /etc/apache2/ssl/ (peticion-apache.pem "la que firma la entidad", keypriv.pem "llave privada")
Esta peticion-apache.pem se la damos a la entidad cuando la firme tambien la guardaremos en /etc/apache2/ssl/ y en el archivo /etc/apache2/sites-availables/default en la linea SSLCertificateFile y la ruta con el nombre del certificado.

Ahora recargamos nuestro servicio.
# /etc/init.d/apache2 start

Abrimos un navegador web y visitamos nuestro sitio web. Nos mostrara algo asi.

Peticion de Certificado para Apache

Si queremos lo podemos configurar para que tambien escuche por el puerto 80 (sin seguridad). Acontinuacion dejo unas imagenes de la configuracion completa del archivo /etc/apache2/sites-availables/default. Al copiar la configuracion del fichero en el blog, no me toma unas lineas por eso dejo las dos imagenes de lo que contiene todo el archivo.

Para mas informacion visita este sitio web.

Mas informacion sobre este tema en los siguientes link en este mismo blog:
--Entidad Certificadora en Windows 2003 Server.
--Peticion deCertificado desde un Browser.
--Peticion deCertificado en Windows.

No hay comentarios: