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
- Creado el
- Visto: 6306