Configurar soporte HTTPS en Apache

Este tutorial describe cómo poner en marcha un servidor web con soporte HTTPS. El procedimiento lo he utilizado en un equipo con Scientific Linux, distribución derivada de Red Hat, por lo que en esta distribución y en otras derivadas como Fedora o CentOS debería ser el mismo. En Ubuntu, Debian y compañía será muy similar pero cambiarán algunas rutas y el sistema de paquetería.

El certificado utilizado es autogenerado y suponemos que tenemos ya instalado Apache.

Instalación de OpenSSL y mod_ssl

Lo primero que necesitamos es tener instalado el software necesario, para ello a través de yum hacemos lo siguiente:

yum install mod_ssl openssl

Generación del certificado

Primero generamos la clave privada, elegimos algoritmo RSA y 1024 bits:

openssl genrsa -out ca.key 1024

Ahora generamos el CSR (Certificate Signing Request), un fichero que crea una entidad para pedirle a una tercera que lo firme, verificando así que los datos de la primera entidad son correctos. De esta forma unas entidades van certificando a otras creando una cadena de certificación, donde la primera entidad de llama la raí­z de certificación.

openssl req -new -key ca.key -out ca.csr

Finalmente, nos autofirmamos el certificado:

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Le hemos puesto un período de validez de un año, pero podéis cambiar a vuestro gusto este tiempo. OpenSSL os pedirá una serie de datos sobre el certificado y su entidad emisora (vosotros): correo electrónico, ciudad, país… a través de un interfaz en texto.

Cambio de rutas

El siguiente paso es mover los ficheros de la firma que acabamos de generar a la ruta correcta.

mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr

Configuración de Apache

Ya estamos listos para comenzar con la configuración de Apache. En las versiones más modernas de Apache, el fichero de configuración viene dividido en varios ficheros separados por temática para un acceso más rápido a la parte deseada. El fichero que vamos a editar es el siguiente: /etc/httpd/conf.d/ssl.conf.

Buscamos las siguientes líneas y le asignamos el valor correcto (no tienen por qué estar seguidas una de la otra):

SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Host virtual

Para terminar crearemos un host virtual donde indicaremos a Apache dónde buscar las peticiones dirigidas al puerto 443 (las peticiones HTTPS). Definimos un host virtual al final de /etc/httpd/conf/httpd.conf:

NameVirtualHost *:443

Y luego la definición de las características en sí:

<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AllowOverride All DocumentRoot /var/www/httpsdocs ServerName nombresitio.com </VirtualHost> read more

Leer más » 11 Comentarios

Manual de YUM

Gran parte de mi vida como usuario de Linux, he estado utilizando distribuciones derivadas de Debian, principalmente Ubuntu. Sin embargo, en un principio no fue así y la primera distribución que usé fue la desaparecida Mandrake.

Todavía recuerdo cuando hace mucho, acostumbrado a tener que descomprimir, compilar e instalar los tarball con el código fuente, un compañero de clase me comento las virtudes de este sistema: “En Debian haces apt-cache search, para buscar, luego pones apt-get install y el nombre del paquete y lo tienes hecho“. Cuando lo vi funcionando me quedé maravillado. read more

Leer más » 4 Comentarios

Configurar NTP (hora en red) en nuestro equipo

Esta entrada sería la finalización de una serie de entradas relacionadas con la hora, fecha y zona horaria del sistema; de los que ya hemos hablado:

Sin embargo, lo lógico es automatizar ese trabajo y poder usar uno de los muchos relojes de referencia que hay en la red, más aún si nuestro equipo proporciona algún tipo de servicio en línea. Tener una hora real es básico para multitud de operaciones.

Instalar

Lo primero será instalar el servicio de NTP, probablemente ya lo tengamos instalado pero por si acaso: read more

Leer más » 9 Comentarios

[Resultados] La encuesta de la semana #11. ¿Qué distro usas para tu server?

And the winner is DEBIAN!

Antes de nada agradeceros la participación en La encuesta de la semana #11. ¿Qué distro usas para tu server?, una encuesta menos popular y de una temática más específica. Una imagen vale más que mil palabras, y mi querido CentOS no ha gustado demasiado:

La encuesta de la semana #11. ¿Qué distro usas para tu server?

Y en vista de los resultados, ¿Algo que añadir?

Leer más » 2 Comentarios

Distribuciones Linux para servidores

Ayer os comenté a través de La encuesta de la semana #11. ¿Qué distro usas para tu server? las opciones más conocidas a la hora de montar un servidor Linux. Mi postura ya la conocéis, CentOS y Ubuntu Server, uno por estabilidad y otro por facilidad respectivamente.

Tabla comparativa de distribuciones Linux para servidores

Ahora os voy a describir las alternativas más populares en el sector de los servidores bajo Linux:

  • Debian
    La más antigua de las distribuciones de las que cito, Debian fue iniciada en 1993 por Ian Murdock. Es la única entre las variedades aquí mostradas en la que no hay ninguna compañía detrás, la distribución está controlada totalmente por voluntarios vinculados por el contrato social Debian. Un líder es elegido cada año desde y por los miembros del proyecto Debian.
  • Ubuntu
    La distribución que más auge a tenido en los últimos años, con cada vez más usuarios y que más rápido se ha adaptado a las necesidades de los mismos. Ubuntu es una distribución basada en Debian, y gestionado por Canonical. Aunque gran parte del énfasis de la distribución está en el escritorio, también hay una versión de servidor, y es que Canonical ha atraído el apoyo de los agentes comerciales más tradicionales de UNIX, como Oracle.
  • Red Hat Enterprise
    Red Hat Enterprise Linux (RHEL) es probablemente la distribución de Linux más conocida y muy popular en cuanto a servidores, además de ser uno de los más veteranos. Ha contribuido a un gran número de aplicaciones para la comunidad Open Source de los años, incluyendo Red Hat GFS y su sistema de archivos en clúster. Aunque no es obligatorio, el acceso a soporte y actualizaciones de seguridad requiere que los clientes paguen un honorario por estos “derechos”, al igual que el caso de SuSe Linux.
  • CentOS
    CentOS (abreviatura de Community Enterprise Operating System) es una versión libre disposición de Red Hat Enterprise que no cobra por el acceso a actualizaciones de seguridad. Esto es posible debido a la licencia libre bajo la cual se libera Red Hat. Dado que es una copia casi exacta de RHEL, con únicamente los logotipos y marcas registradas modificadas (y sin el soporte comercial), los binarios son 100% compatibles, es decir, las aplicaciones diseñadas para aplicaciones comerciales de Red Hat se ejecutarán sin modificaciones y con total compatibilidad.
  • SuSE Enterprise
    SuSE Linux Enterprise Server (SLES) es una distribución que toma prestado de Red Hat su gestión de paquetes, distribución y su modelo de negocio. Fue creada originalmente en Alemania por un grupo de consultores de UNIX, SuSE significa “Software- und System-Entwicklung” (Desarrollo de software y de sistemas). Y en 2003 fue adquirida por Novell, que hicieron de esta una distribución en base a sus ofertas.
  • read more

    Leer más » 10 Comentarios

    La encuesta de la semana #11. ¿Qué distro usas para tu server?

    LEDLS

    He usado y uso CentOS y Ubuntu Server como servidores, por facilidad de uso y costumbre me quedo con el elaborado por Canonical, por estabilidad y escalibilidad me quedo con la solución libre de Red Hat. ¿Y tú, con cuál te quedas?

    Leer más » 2 Comentarios