10

Configurar SSL HTTPS en Owncloud

Hola a tod@s.

En este post vamos a ver como configurar SSL HTTPS en Owncloud, para proporcionar un acceso cifrado y seguro a nuestros usuarios.

  • Lo primero que haremos será instalar el paquete openssl ejecutando el siguiente comando:

ssloc1

  • Activamos el módulo SSL en el servidor Apache:

ssloc2

  • Ahora vamos a modificar la configuración de SSL, editamos el fichero de configuración de openssl, donde vamos a cambiar el tiempo de caducidad del certificado y la ubicación dónde se guardará el certificado :

ssloc3

ssloc4

ssloc5

ssloc6

ssloc7

ssloc8

  • Ahora vamos a crear las carpetas y archivos para generar el certificado SSL:

ssloc9

  • Accedemos al directorio que acabamos de crear:

ssloc10

  • Creamos tres carpetas que son necesarias para que openssl pueda generar nuestras claves y certificados:

ssloc11

  • Una vez creadas las carpetas certs, private y newcerts, crearemos el fichero indext.txt y el fichero serial con un valor de 1000. Para ello introduciremos los siguientes comandos en la terminal:

ssloc12

  • El fichero index.txt contendrá una base de datos de los certificados generados. El fichero serial se usará para generar el número de serie del certificado que vamos a generar.
  • Ahora vamos a crear una autoridad de certificación, para ello introducimos los siguientes comandos:

ssloc13

  • Al ejecutar el comando lo primero que se nos pregunta es una clave, esta clave tenemos que recordarla y se nos preguntará cada vez que firmemos un certificado, nos pedirá que confirmemos la clave que acabamos de elegir:

ssloc14

  • Luego, como podemos ver en la captura de pantalla, nos irá haciendo preguntas. Las vamos respondiendo una tras otra teniendo especial cuidado en el campo Common Name que tendrá que ser el fqdn (fully qualified name), en mi caso el Common Name (fqdn) es cloudrgs.ragasys.es:

ssloc15

  • Una vez creada la autoridad de certificación, dentro de la ubicación /root/SSLCertAuth podemos encontrar los archivos cakey.pem y cacert.pem. Estos archivos hay conservarlos ya que serán necesarios para crear nuestros certificados:

ssloc16

  • Ahora vamos a crear una clave privada y una solicitud de firma del certificado CSR, para ello introducimos el siguiente comando:

ssloc17

  • Luego, como podemos ver en la captura de pantalla, nos irá haciendo preguntas. Las vamos respondiendo una tras otra teniendo especial cuidado en el campo Common Name que tendrá que ser el fqdn (fully qualified name), en mi caso el Common Name (fqdn) es cloudrgs.ragasys.es:

ssloc18

  • Una vez finalizado el proceso en la ubicación /root/SSLCertAuth dispondremos de los siguientes archivos:

apache-req.pem: Es el archivo que contiene la solicitud de firma del certificado.

apache-key.pem: Es la clave privada que hemos generado. Está clave privada se usa para el proceso de autentificación SSL de los usuarios que se conectan al servidor de owncloud.

ssloc19

  • Ahora vamos a crear y firmar el certificado SSL, para ello introducimos el siguiente comando:

ssloc20

  • Al ejecutar el comando se nos preguntará la clave que fijamos en el apartado de crear una autoridad de certificación. La introducimos y presionamos Enter. Seguidamente se nos preguntará si queremos firmar el certificado e introducirlo en la base de datos. En ambos casos respondemos que Sí. Después de realizar estos pasos, tal y como se puede ver en la captura de pantalla, el proceso ha terminado:

ssloc21

  • Para confirmar que el proceso ha finalizado, en la ubicación /root/SSLCertAuth, tenemos que comprobar que esté presente el archivo apache-cert.pem que será el certificado SSL que hemos creado:

ssloc22

  • Ahora vamos a copiar las claves y los certificados en las ubicaciones correspondientes, para ello crearemos las carpetas que contendrán el certificado y la clave:

ssloc23

  • Copiamos el certificado y la clave que hemos generado dentro de las carpetas que acabamos de crear:

ssloc24

  • Ahora vamos a configurar apache para que utilice https, para ello editamos el siguiente fichero, dónde iremos modificando lo siguiente:

ssloc25

ssloc26

ssloc27

  • Ahora crearemos un enlace simbólico del archivo /etc/apache2/sites-available/default-ssl.conf en la ubicación /etc/apache2/sites-enabled:

ssloc28

  • Como podemos ver el enlace simbólico se ha realizado correctamente:

ssloc29

  • Una vez creado el enlace simbólico, el servicio https está activado. Finalmente tan solo tenemos que reiniciar el servidor apache:

ssloc30

  • Ahora accedemos por https a nuestra nube privada, primero vamos a acceder desde nuestra LAN:

ssloc31

  • Introducimos las credenciales:

ssloc32

  • Como podemos ver ya estamos accediendo a nuestro servidor de Owncloud a través de HTTPS, por lo que ya tenemos un acceso cifrado y seguro para nuestros usuarios:

ssloc33

  • Para acceder de forma remota desde cualquier lugar, tendremos que mapear el puerto 443 hacia la dirección ip interna del servidor Owncloud, luego registraremos nuestra ip pública en 1&1 para asignarle un nombre en internet.
  • Puerto 443 hacia IP interna de owncloud, está configurado sobre un router Mikrotik en “IP > Firewall > NAT” y agregar regla:

ssloc34

ssloc35

  • La regla quedaría de la siguiente manera:

ssloc36

  • Registro de IP pública en 1&1:

ssloc37

  • Como podemos ver le hago un ping al nombre cloudrgs.ragasys.es y todo está correctamente configurado, ya podemos acceder remotamente al servidor desde cualquier lugar:

ssloc38

  • Como podemos ver ya tenemos acceso desde el exterior:

ssloc39

  • Introducimos las credenciales:

ssloc40

ssloc41

  • Ahora con el cliente de Windows vamos a configurar la conexión a nuestra nube privada por HTTPS:

ssloc42

ssloc43

ssloc44

ssloc45

ssloc46

  • Para ver que la sincronización está funcionando correctamente vamos a copiar un fichero en la carpeta personal owncloud de Windows y veremos si este archivo se ha subido a nuestro servidor de Owncloud:

ssloc47

ssloc48

Fuente para poder realizar este post: geekland.eu blog sobre tecnología el cuál recomiendo

Saludos y espero que os haya sido de ayuda 😉

Jose Ramon Ramos Gata

Técnico Superior STI

10 comentarios

  1. Muchas gracias por tus post tengo mi Owncloud funcionando gracias a tus consejos, solo que no he logrado activar las notificaciones, para cuando recibas archivos nuevos o se realicen modificaciones, ya configure el smtp y tb las cuentas de recepción además en la parte de notificaciones di permitir recibir notificaciones, en los usuarios pero simplemente no llegan, te agradecería si puedes aclararme un poco el panorama.

    Saludos

  2. Hola, te agradezco este tutorial. Hay algo que no entiendo, para conectar desde el exterior tu usas una dirección «cloudrgs.ragasys.es» que además coincide con los certificados. Si yo quiero hacer lo mismo, tengo que darme de alta en No-ip o algún sitio similar? Es necesario o se puede hacer de otra forma?
    Gracias

    • Hola Alfredo, para realizar la conexión por nombre debes estar dado de alto con algún proveedor de DNS como por ejemplo, Nominalia, 1&1, GoDaddy, etc…
      y además debes tener una IP púbica fija o estática contratada con tu ISP, ya sea Movistar, Vodafone, ONO, etc…
      Saludos y muchas gracias

  3. Hola, te agradezco este tutorial. Hay algo que no entiendo, para conectar desde el exterior tu usas una dirección “cloudrgs.ragasys.es” que además coincide con los certificados. Si yo quiero hacer lo mismo, tengo que darme de alta en No-ip o algún sitio similar? Es necesario o se puede hacer de otra forma?
    Gracias

    • Hola Alfredo, para realizar la conexión por nombre debes estar dado de alto con algún proveedor de DNS como por ejemplo, Nominalia, 1&1, GoDaddy, etc…
      y además debes tener una IP púbica fija o estática contratada con tu ISP, ya sea Movistar, Vodafone, ONO, etc…
      Saludos y muchas gracias

      • Gracias. Otra pregunta como puedo usar el certificado letsencrypt en lugar de los hechos aquí?

        • Me refiero a como configurar el letsencrypt. Lo estoy intentando y no puedo

  4. Buen día.

    Estoy configurando mi owncloud, mi sitio ya tiene una ip publica, mi ip publica ya apunta a un nombre de dominio con mi proveedor de Internet, tengo un certificado ssl y ahora necesito configurar ese SSL para mi sitio…. me puedes orientar?

  5. Buenas he seguido los pasos pero me dio un fallo en un paso concreto , te lo dejo por aqui a ver si te suena:
    root@cloudserv:~# openssl ca -config /etc/ssl/openssl.cnf -out apache-cert.pem -infiles apache-req.pem
    Using configuration from /etc/ssl/openssl.cnf
    Enter pass phrase for /root/SSLCertAuth/private/cakey.pem:
    Can’t open /root/SSLCertAuth/index.txt.attr for reading, No such file or directory
    3073271552:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:74:fopen(‘/root/SSLCertAuth/index.txt.attr’,’r’)
    3073271552:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:81:
    3073271552:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:74:fopen(‘apache-req.pem’,’r’)
    3073271552:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:81:
    root@cloudserv:~#

  6. Muy buen tutorial. Antes que nada agradecerte el tiempo invertido. Pero soy bastante novato con el tema de linux y me engancho a veces con tonterías. Como la que seguro que será en la siguiente que te voy a preguntar. Como el compañero anterior, me da un error en el mismo paso. Mirando por internet no sé ver la solución.
    El error que me da es el siguiente:
    «Using configuration from /etc/ssl/openssl.cnf
    Enter pass phrase for /root/SSLCertAuth/private/cakey.pem:
    140415504790656:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:72:fopen(‘/root/SSLCertAuth/index.txt’,’r’)
    140415504790656:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:79:»
    No se de donde demonios viene lo de «/crypto/biO»,,. Lo he buscado en el openssl.cnf y no veo esa especificación. ¿Puedes ayudar a aclararme que pasa?
    Muchas gracias por adelantado

Responder a Alfredo Cancelar la respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.