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.
Rulando a tope! Tks.
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.
Es que es un certificado autofirmado.
Gracias por su respuesta, y como puedo hacerlo para que lo reconozcan los navegadores, algun tutorial?? algun consejo??
Gracias de nuevo
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.
Gracias Drymer por tu respuesta. Conoces algun tutorial para hacer lo que me dices?? Ando un poco perdido en este tema.
Gracias de nuevo.
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!
¿Has mirado en el apartado de seguridad?
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.
Parece ser que en la nueva versión no aparece el Check para HTTPS: en SEGURIDAD. Es más, ya no hay pestaña SEGURIDAD
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
¿Has creado e certificado en este punto?
openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem