Habilitar HTTPS en web2py

web2py por defecto sólo deja acceder a la sección admin si se conecta desde la misma máquina, si no dará el error «admin is disabled because insecure channel» Para conectar de forma remota, hay que habilitar el HTTPS o un túnel SSH. Aquí explicaré como habilitar el HTTPS.

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

Ahora podemos lanzar el servidor con python web2py.py -c server.crt -k server.key y acceder mediante https://

Fuente: http://www.web2py.com/AlterEgo/default/show/140

Crear certificado autofirmado

Se puede crear de forma sencilla un self-signed certificate para servicios como Apache, Postfix, ejabberd, etc, usando make-ssl-cert. En caso de que no lo tengamos instalado:

aptitude install ssl-cert

El template que se usará está en /usr/share/ssl-cert/ssleay.cnf, el cual modificaremos para añadir days = 3650 dentro de la seccion [ req ] si queremos que el certificado nos dure unos 10 años.
El siguiente ejemplo sería para crear un certificado para ejabberd:

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ejabberd/ejabberd.pem