Este documento explica cómo configurar un servidor SSL para ownCloud para habilitar el cifrado HTTPS. Primero, se activa el módulo SSL de Apache y se reinician los servicios. Luego, se crea una autoridad de certificación raíz (CA) y se genera un certificado para el sitio web. Finalmente, se configura Apache para que el servicio predeterminado sea HTTPS a través de la virtualización del puerto 443 y la especificación de los archivos de certificado y clave privada recién creados.
Configura SSL en ownCloud con certificados autogenerados
1. 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
2. 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>
3. 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.
Esta obra está licenciada bajo una Licencia Creative Commons Atribución 4.0
Internacional.