you without page log insecure from enforce developers app django facebook ssl facebook-graph-api https

django - without - fb api



¿Cómo configurar SSL en un servidor django local para probar una aplicación de Facebook? (6)

Con django-extensions puedes ejecutar el siguiente comando:

python manage.py runserver_plus --cert certname

Generará un certificado (autofirmado) automáticamente si no existe. Casi demasiado simple.

Solo necesitas instalar las siguientes dependencias:

pip install django-extensions pip install Werkzeug pip install pyOpenSSL

Ahora, como Ryan Pergent señaló en los comentarios , por último, solo necesita agregar ''django_extensions'', a su INSTALLED_APPS y debería estar listo.

Usé un túnel antes, que funcionó, pero esto es mucho más fácil y viene con muchos otros comandos.

He configurado la configuración HOSTS de mi máquina local para acceder al servidor local (@ 127.0.0.1) cada vez que presiono http://www.mydomain.com en el navegador.

Y lo estaba usando para interactuar con la api de gráficos de Facebook para construir mi aplicación. Pero ahora Facebook requiere que tengamos una URL HTTPS o, más bien, una URL segura SSL para interactuar con su API.

Entonces, la pregunta es -> ¿Cómo configuro SSL en un servidor django local?


Esto no resuelve el problema de las pruebas automáticas a través de

./manage.py prueba

pero para ejecutar un servidor con HTTPS puede usar RunServerPlus: http://pythonhosted.org/django-extensions/runserver_plus.html

Solo instale django-extensions y pyOpenSSL:

pip instalar django-extensiones pyOpenSSL

y luego ejecute:

python manage.py runserver_plus --cert cert


He podido configurar ssl en el servidor de prueba de django usando stunnel. http://tech.xster.net/tips/django-development-server-with-https/ hay alguna información sobre cómo configurarlo

Solo una nota, no pude hacerlo funcionar usando el paquete provisto por debian en apt-get y tuve que instalar desde la fuente. En caso de que tenga que hacer lo mismo, consulte las excelentes instrucciones de los foros de Debian sobre cómo crear paquetes de Debian. Hay muchas instrucciones en línea y también en Preguntas Frecuentes sobre cómo crear su certificado pem, pero en última instancia, dpkg-buildpackage en Debian lo creó para mí.

Me imagino que las cosas podrían ser más directas en Windows.

Luego pude hacer que pydev in eclipse inicie el servidor de prueba (y también lo conecte) agregando una variable de entorno HTTPS = 1 en "Configuraciones de depuración" -> "Entorno" -> Variables


La respuesta corta es que necesitará configurar un servidor web adecuado en su máquina de desarrollo. Utilice la que más le guste (Apache, nginx, cherokee, etc.).

La respuesta más larga es que el servidor de desarrollo django ( manage.py runserver ) no está diseñado para hacer SSL, etc. y el esfuerzo para hacerlo es probablemente mayor de lo que querría gastar.

Consulte las discusiones de este documento en la lista de usuarios de django: http://groups.google.com/group/django-users/browse_thread/thread/9164126f70cebcbc/f4050f6c82fe1423?lnk=gst&q=ssl+development+server#f4050f6c82fe1423


No para necro un hilo, pero encontré que esta herramienta es extremadamente fácil de usar.

Es una aplicación de django premade con instrucciones de instalación muy simples.

Puede agregar una clave certificada una vez que se instala simplemente ejecutando:

python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key

Espero que esto ayude a cualquier transeúnte que pueda ver esto.


Solución para ejecutar https en django.

Esto se puede hacer con stunnel que permite que el servidor de Facebook y stunnel en su máquina se comuniquen en SSL y stunnel se da vuelta para comunicarse con Python en HTTP. Primero instale stunnel. Por ejemplo en Mac OS X:

brew install stunnel

Entonces necesitas crear un archivo de configuración para que se ejecute stunnel. Puede crear un archivo de texto en cualquier lugar. Por ejemplo, puedes crear dev_https e ingresar:

pid= cert=/usr/local/etc/stunnel/stunnel.pem foreground=yes debug=7 [https] accept=8001 connect=8002 TIMEOUTclose=1

Stunnel crea un certificado falso. Por defecto en Mac, está en /usr/local/etc/stunnel/stunnel.pem. Aparecerá una advertencia en su navegador que dice que su página web puede ser falsa pero que las operaciones de Facebook siguen funcionando correctamente. Dado que stunnel tiene que escuchar en un puerto y el servidor de desarrollo de Python no puede ejecutarse en el mismo servidor, debe usar diferentes puertos para aceptar (recibir) y conectarse (interno). Una vez que tenga su archivo dev_https o como se llame, ejecute

sudo stunnel dev_https

para iniciar la tunelización. Entonces inicie su servidor Python.

HTTPS=1 python manage.py runserver 0.0.0.0:8002

La variable de entorno HTTPS debe establecerse en 1 para que devuelva respuestas seguras y, como anteriormente establecimos el puerto interno en 8002, escuchamos en 8002 desde todas las direcciones IP entrantes. Luego, su IP: 8001 puede aceptar conexiones HTTPS sin cambiar su servidor web y puede continuar ejecutando otra instancia del servidor HTTP Python en un puerto diferente.

ref: http://tech.xster.net/tips/django-development-server-with-https/