La nube perfecta IV. Securización y configuración de owncloud.

Continuamos la serie de post contando como configurar de una forma más segura nuestra instalación de owncloud. Haremos que toda la navegación sea por https.

 Securización Owncloud. Configuración Apache.

Lo primero que debemos hacer es activar el módulo SSL de Apache.  Activamos el módulo y despues reiniciarmos apache.

sudo a2enmod ssl
service apache2 restart

Securización de Ownlcoud. Creación del certificado.
Instalamos OpenSSL para ello ejecutamos lo siguiente:

sudo apt-get install openssl

ahora crearemos una llave privada. La llave privada nos será útil para la generación del certificado. Una vez creado, nuestro certificado SSL dependerá de esta llave para la implementación del mismo en cualquier servicio que requiera una conexión segura.

Vamos a crear una llave de 1024 bits.

openssl genrsa -out server.key 1024

Nos aparece algo como lo siguiente:

 openssl genrsa -out server.key 1024

openssl genrsa -out server.key 1024

Vamos a crear un CSR (Certificate Signing Request). Un CSR es la base para un certificado SSL, en el se definen datos como el dominio, organización, ubicación, información de contacto, entre otros.

Si te equivocas no te preocupes, puedes generarlo las veces que quieras.

Para generar el CSR debes ejecutar el siguiente comando, si te fijas uno de los parámetros (server.key) es la llave privada que acabamos de crear:

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

Conseguiremos algo como esto. Debes ir respondiendo a las preguntas que se te hacen:

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

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

Ten en cuenta las siguientes cosas:

Country Name (2 letter code): Código de país en formato ISO de dos letras.
State or Province Name (full name): Estado o provincia.
Locality Name: Localidad o ciudad.
Organization Name: Nombre de la organización.
Organizational Unit Name: Sector de la organización.
Common Name: Nombre del dominio ó FQDN. Muy importante, hay una diferencia entre www.nanotutoriales.com a nanotutoriales.com sin www. Si registras tu certificado a una de estas opciones, no funcionará para el otro.
Email Address: Dirección de correo de contacto.

Si se fijan he dejado en blanco los campos A challenge password y An optional company name, no los vamos a necesitar.

Ahora vamos a general el certificado SSL. Para generar el certificado SSL vamos a necesitar tanto la llave privada como el CSR que acabamos de crear.

Para generar el certificado SSL debemos ejecutar el siguiente comando:

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

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

Securización de Ownlcoud. Instalación del certificado.

Ya activamso el modulo ssl de apache en  la primera parte de este tutorial. Ahora debemos copiar los archivos que hemos generado en el punto anterior a la carpeta /etc/ssl/certs.

 sudo cp server.crt /etc/ssl/certs/ssl.crt
 sudo cp server.key /etc/ssl/certs/ssl.key

Ahora tenemos que editar el archivo vhosts para que tenga en cuenta los certificados que acabamos de crear. No olvides cambiar www.example.com por el nombre de tu dominio. Editamos el fichero con nano

 sudo nano /etc/apache2/sites-available/default-ssl

Borramos todo su contenido y lo dejamos como indicamos a continuación:

<IfModule mod_ssl.c>
   <VirtualHost _default_:1443>
     ServerName www.example.com
     ServerAdmin webmaster@localhost
     DocumentRoot /var/www
     <Directory />
         Options FollowSymLinks
         AllowOverride None
     </Directory>
     <Directory /var/www/>
       Options -Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     LogLevel warn
     CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
     SSLEngine on
     SSLCertificateKeyFile /etc/ssl/certs/server.key
     SSLCertificateFile /etc/ssl/certs/server.crt
     #SSLCACertificateFile /etc/ssl/certs/bundle.crt
     BrowserMatch "MSIE [2-6]" \
       nokeepalive ssl-unclean-shutdown \
       downgrade-1.0 force-response-1.0
     # MSIE 7 and newer should be able to use keepalive
     BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
   </VirtualHost>
 </IfModule>

Fijate que en la primera linea especificamos el puerto 1443 que es donde nuestro servidor escucha como servidor seguro ya que redirigimos los puertos con sslh tal y como explicamos en el segundo post de esta serie.

Vamos a habilitar esta configuración por defecto para el certificado ssl con este comando y reiniciamos el Apache:

sudo a2ensite default-ssl
sudo service apache2 reload

Securización de Ownlcoud. Forzar el uso de https.

Desde dentro de owncloud podemos forzar el uso de SSL. Esto se hace con el usuario de administrador en la pestaña de administrador.

Forzar https

Forzar https

Esta entrada fue publicada en Informática, owncloud, Ubuntu. Guarda el enlace permanente.

11 respuestas a La nube perfecta IV. Securización y configuración de owncloud.

  1. Orcardo dijo:

    Me esta pasando esto, podrias ayudarme?

    root@OrCloud:/etc# a2enmod ssl
    Module ssl already enabled
    root@OrCloud:/etc# service apache2 restart
    [….] Restarting web server: apache2(98)Address already in use: make_sock: could not bind to address [::]:443
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    failed!

    gracias

    • androide1 dijo:

      perdón por el retraso. Parece que tienes algún otro proceso escuchando en el puerto 443 y apache no se puede arrancar

  2. Ado Ello dijo:

    Gracias por las instrucciones.
    He llegado desde Google. Siguiendo los pasos he visto que tienes un error al crear el default-ssl.
    Cuando haces el cp renombras el /etc/ssl/certs/server.key & /etc/ssl/certs/server.crt a ssl.key&crt
    Por lo demás de maravilla y funcionando.
    Un saludo.

  3. Rodrigo dijo:

    Excelente,muchas gracias.
    Una duda. es obligacion poner este campo?
    Common Name: Nombre del dominio ó FQDN.
    Yo no tengo ningun dominio registrado

  4. Diego dijo:

    Hola he seguido los pasos correctamente y me da esste error:

    pi@diegopazosraspi:/etc/apache2/sites-available$ sudo service apache2 restart
    [….] Restarting web server: apache2(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    failed!

  5. Ismael dijo:

    Hola! Mira, hice todo y me salta con “[FAIL] Reloading web server config: apache2 failed!”
    Además de que dentro de owncloud no me deja clicar la pestaña de forzar https…

  6. Ismael dijo:

    Vale, soy el mismo de arriba jeje.
    He conseguido arrancarlo, pero ahora me meto en mi nube, en el apartado de administración, y no me deja clicar en forzar https.
    En la barra de direcciones pongo https: (mi direccion ip) y me dice “it works!”, vale, ya sé que apache está funcionando, pero llévame a owncloud! xD le meto seguidamente /ownlcoud y nada….
    También he probado a modificar la línea “DocumentRoot /var/www” poniendo /var/www/owncloud pero tampoco me va…

  7. Jonatan dijo:

    Hola, reemplaze el contenido del archivo default-ssl y no me inicio mas el apache.. necesito que me digas como solucionarlo. Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *