Autogestión – ownCloud server con SSL

Ya hemos visto como instalar ownCloud en nuestro servidor Debian, ahora veremos como generar los certificados SSL para disfrutar de una navegación cifrada y segura con HTTPS. Sigamos con la #autogestión

Primero activamos el módulo SSL de Apache y reiniciamos Apache.

a2enmod ssl
service apache2 restart

Editamos el archivo de configuración openssl.conf:

nano /etc/ssl/openssl.cnf

Dentro de él, tenemos que encontrar y cambiar las siguientes líneas:

dir = /root/SSLCertAuth
default_days = 3650
default_bits = 2048
countryName_default = ES
0.organizationName_default = Debian

Hacemos Ctrl+o para guardar y Ctrl+x para cerrar nano.

Creamos el directorio para guardar todos los archivos de la autoridad certificadora SSL. En nuestro caso lo llamaremos “SSLCertAuth”.

Ejecutamos los siguientes comandos:

mkdir /root/SSLCertAuth
chmod 700 /root/SSLCertAuth
cd /root/SSLCertAuth
mkdir certs private newcerts
echo 1000 > serial
touch index.txt

Creamos la Autoridad Certificadora (CA). Escribimos una orden (o linea) tras otra:

openssl req -new -x509 -days 3650 -extensions v3_ca \
-keyout private/cakey.pem -out cacert.pem \
-config /etc/ssl/openssl.cnf

Nos dice: Enter PEM passphrase:

Introducimos una contraseña que usaremos después para firmar cualquier certificado, así que que no la olvides. Vamos introduciendo todos los datos, y con especial cuidado cuando nos pida el Common Name, que debe ser nuestro dominio de internet (fqdn: fully qualified domain name).

Ahora creamos la solicitud de firma del certificado del sitio.

openssl req -new -nodes \
-out apache-req.pem \
-keyout private/apache-key.pem \
-config /etc/ssl/openssl.cnf

De nuevo introducimos todos los datos que nos pide, y en Common Name de nuevo metemos el fqdn. Los «extra atributes»… podemos dejarlos en blanco.

Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl

openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem

Introducimos la contraseña del CA que creamos antes y después le decimos a todo que sí.

Ejecutamos:

mkdir /etc/ssl/crt
mkdir /etc/ssl/key
cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt
cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key

El paso final consiste en configurar apache para que el servicio por omisión HTTPS, sea ownCloud.

-Primero creamos un directorio donde irán los logs.

mkdir /var/www/logs
nano /etc/apache2/conf.d/owncloud5-ssl.conf

-Con la segunda orden crearemos un fichero para la configuración SSL de owncloud.

Escribe en el fichero la siguiente configuración:

<VirtualHost *:443>
ServerName fqdn
SSLEngine on
SSLCertificateFile /etc/ssl/crt/apache-cert.pem
SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
DocumentRoot /var/www/owncloud
CustomLog /var/www/logs/ssl-access_log combined
ErrorLog /var/www/logs/ssl-error_log
</VirtualHost>

Donde pone fqdn, ponemos nuestro dominio de internet o la IP de nuestro servidor.

El último paso, es, desde dentro, en la Administración de ownCloud. Podemos forzar el uso de HTTPS, lo que es muy recomendable a efectos de seguridad. Lo activamos.forzarhttps

Compartir

13 Comentarios

  1. He seguido tu tutorial y todo ha ido bien pero si voy al sitio web de owncloud que he configurado me indica que el certificado del servidor no es seguro y el navegador intenta bloquearme el acceso.

    Me imagino que me faltara hacer algo… Espero puedas ayudarme.

    Gracias.

  2. Gracias por su respuesta, y como puedo hacerlo para que lo reconozcan los navegadores, algun tutorial?? algun consejo??

    Gracias de nuevo

  3. Con firefox puedes aceptarlo de manera local. Chrome/ium no lo permite. Otra opción es instalar el certificado totalmente, de manera que cualquier contacto con el certificado es válido.

  4. Gracias Drymer por tu respuesta. Conoces algun tutorial para hacer lo que me dices?? Ando un poco perdido en este tema.

    Gracias de nuevo.

  5. He instalado owncloud la ultima versión. he seguido el manual, pero ni antes ni después me da la opción del check para activar https desde la administración.
    help!

  6. Hola, he seguido los pasos del tutorial pero al llegar a este paso

    «Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl»

    y me sale el siguiente error:

    virtual-machine:/$ sudo openssl ca -config /etc/ssl/openssl.cnf -out apache-cert.pem -infiles apache-req.pem
    Using configuration from /etc/ssl/openssl.cnf
    Error opening CA private key /root/SSLCertAuth/private/cakey.pem
    3073489096:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘/root/SSLCertAuth/private/cakey.pem’,’r’)
    3073489096:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
    unable to load CA private key

    ¿Qué debo hacer? que alguien me ayude, por favor.

  7. cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt
    cp: no se puede efectuar `stat’ sobre ‘/root/SSLCertAuth/apache-cert.pem’: No existe el fichero o el directorio
    Estoy usando la ultima versión y esta dando ese error no lo crea y sigo todos los pasos

    1. ¿Has creado e certificado en este punto?

      openssl ca \
      -config /etc/ssl/openssl.cnf \
      -out apache-cert.pem \
      -infiles apache-req.pem

Deja una respuesta

Your email address will not be published. Required fields are marked *