• Inicio
  • Linux
  • Ubuntu 8.10 Intrepid Montar Servidor Apache2 + MySQL + PHP y páginas seguras HTTPS

Ubuntu 8.10 Intrepid Montar Servidor Apache2 + MySQL + PHP y páginas seguras HTTPS

Bueno, otro ejercicio de clase, también muy fácil, pero que transcribo aquí. Como siempre, empezaré desde cero:

Instalamos y actualizamos Ubuntu 8.10 (Intrepid)

Abrimos el Terminal Vamos a habilitar el usuario "root". sudo passwd

Escribimos la contraseña que queramos ponerle al usuario "root", en nuestro caso, para hacerlo fácil será "root". En un caso real no se os ocurra poner una contraseña así.

Nos logamos como "root" su -

Instalamos Apache: apt-get install apache2

Instalamos MySQL apt-get install mysql-server

Ahora nos pedirá una contraseña para el usuario "root" de MySQL, no confundir con el usuario "root" de Ubuntu.

Ponemos la contraseña, en nuestro caso "root-mysql"

Vamos a comprobar que los demonios de Apache y MySQL están funcionando con:
lsof - i -P -n

Vamos a instalar PHP:
apt-get install php5

Para comprobar que el PHP se ha instalado correctamente creando un archivo php:
cd /var/www vi prueba.php

En el interior de "prueba.php" hacemos lo siguiente:

1º pulsamos "a" para poder añadir texto, y escribimos: <? phpinfo(); ?>
2º Pulsamos ESC para salir del modo de edición y guardamos el archivo creado en "vi" escribiendo: :wq

Reiniciamos el demonio de Apache, para que reconozca el PHP instalado anteriormente:
/etc/init.d/apache2 restart

Ahora abrimos el navegador, en nuestro caso Mozilla Firefox y escribimos:
http://127.0.0.1/prueba.php o http://localhost/prueba.php

De esta forma veremos la una página PHP con la configuración del servidor que estamos instalando.

Vamos a habilitar el modulo SSL de Apache para conseguir páginas protegidas "https":
a2enmod ssl

Reiniciamos de nuevo el servicio Apache: /etc/init.d/apache2 restart

Creamos un certificado de seguridad para el servidor (estará autofirmado por nuestro servidor).
make-ssl-cert generate-default-snakeoil --force-overwrite

Y pulsamos en Aceptar Ahora creamos la configuración de "el sitio" para el servidor con páginas seguras:
cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/ssl

Creamos un enlace para el "ssl" en "/etc/apache2/sites-enabled/":
a2ensite ssl

Y para activar la nueva configuración de Apache escribimos:
/etc/init.d/apache2 restart

Y ya podemo probar las direcciones http://localhost y https://localhost.

Esta ultima te pedirá añadir una excepción (es normal porque el certificado es de nuestro propio servidor).

También podríamos añadir un certificado con OpenSSL para las páginas HTTPs, en vez del certificado de seguridad que hemos realizado más arriba:

Vamos a generar una petidicón de Firma de Certificado con OpenSSL
openssl genrsa -des3 -out server.key 1024

Y pondremos de frase de paso: infodark

Ahora ejecutamos openssl rsa -in server.key -out server.key.insecure

Ahora creamos el CSR:
openssl req -new -key server.key -out server.csr

Y rellenamos todos los datos que nos solicita (nombre, empresa, etc.).

Ahora creamos el certificado autofirmado:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Instalamos el certificado
cp server.crt /etc/ssl/certs cp server.key /etc/ssl/private

Y ahora editamos el archivo "default":
vi /etc/apache2/sites-available/default

Y en la sección VirtualHost, debajo de la línea DocumentRoot, escribimos:
SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Volvemos a reiniciar el servidor Apache:
/etc/init.d/apache2 restart

En este momento, para que se reinicie completamente el servidor Apache nos pedirá una frase de paso, que en nuestro caso será: infodark