Como configurar o SSL num servidor local de django para testar uma aplicação no facebook?

configurei a configuração das máquinas locais para aceder ao servidor local ( @ 127. 0. 0. 1 ) sempre que atingir http://www.mydomain.com no navegador.

e eu estava a usar isto para interagir com a api de grafos do facebook para construir a minha app. Mas agora o facebook exige que tenhamos uma url HTTPS ou melhor, uma url segura SSL para interagir com a sua api.

Então a questão é ... como posso configurar o SSL num servidor local do django ?

Author: Sussagittikasusa, 2011-09-30

6 answers

A resposta curta é que terá de configurar um servidor web adequado na sua máquina de desenvolvimento. Use o que estiver mais familiarizado (Apache, nginx, cherokee etc). {[[2]}a resposta mais longa é que o servidor de desenvolvimento django ({[[[0]}) não foi projetado para fazer SSL etc e o esforço para fazê-lo é provavelmente maior do que você gostaria de gastar.

Ver as discussões deste passim na lista de utilizadores do django: http://groups.google.com/group/django-users/browse_thread/thread/9164126f70cebcbc/f4050f6c82fe1423?lnk=gst&q=ssl+development+server#f4050f6c82fe1423

 7
Author: Malcolm Box, 2011-09-30 12:51:16

Não para necro um fio, mas eu achei esta ferramenta para ser extremamente fácil de usar.

É uma aplicação premade django com instruções de instalação muito simples.

Você pode adicionar uma chave certificada logo que esteja instalada simplesmente executando:

python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key
Espero que isto ajude qualquer transeunte que possa ver isto.
 33
Author: jdero, 2013-08-10 23:52:28

Com {[2] } pode executar o seguinte comando:

python manage.py runserver_plus --cert certname

Irá gerar automaticamente um certificado (autossignado) se não existir. É quase demasiado simples.

Só precisa de instalar as seguintes dependências:

pip install django-extensions
pip install Werkzeug
pip install pyOpenSSL

Agora, Como O Ryan percent salientou nos comentários {[[14]}, por fim só precisas de adicionar 'django_extensions', ao teu INSTALLED_APPS e deve estar pronto para ir.

Já usei um túnel antes, que funcionou, mas isto é muito mais fácil e vem com muitos outros. comando.
 9
Author: Mark, 2018-05-11 18:11:59

Trabalhar para executar https em django.

Isto pode ser feito com stunnel que permite ao servidor do Facebook e stunnel na sua máquina comunicar em SSL e stunnel volta para se comunicar com Python em HTTP. Primeiro instalar stunnel. Por exemplo no Mac OS X:
brew install stunnel

Então você precisa criar um arquivo de configuração para o stunnel executar. Você pode criar um arquivo de texto em qualquer lugar. Por exemplo, você pode criar DEV_ HTTPS e entrada:

pid=
cert=/usr/local/etc/stunnel/stunnel.pem
foreground=yes
debug=7

[https]
accept=8001
connect=8002
TIMEOUTclose=1
O Stunnel cria um certificado falso. Por padrão no Mac, é at / usr / local / etc/stunnel / stunnel.pem. Ele vai trazer um aviso no seu navegador dizendo que a sua página pode ser falsa, mas as operações do Facebook ainda funcionam bem. Uma vez que o stunnel tem de ouvir numa porta e que o servidor de desenvolvimento do Python não pode correr no mesmo servidor, deverá usar diferentes portas para aceitar (receber) e ligar (interno). Assim que tiver o seu ficheiro dev_https ou lá como lhe chamou, execute
sudo stunnel dev_https
Para começar o túnel. Então começa a tua Python. servidor.
HTTPS=1 python manage.py runserver 0.0.0.0:8002

A variável de ambiente HTTPS deve ser configurada como 1 para que ele retorne respostas seguras e uma vez que previamente ajustamos a porta interna para 8002, ouvimos 8002 de todos os IPs que chegam. Em seguida, o seu IP: 8001 pode aceitar conexões HTTPS sem alterar o seu servidor web e você pode continuar executando outra instância do servidor Python HTTP em uma porta diferente.

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

 5
Author: mike, 2015-05-22 18:29:22
Isto não resolve o problema do teste automático via

./manage.py teste

Mas para executar um servidor com HTTPS pode usar o RunServerPlus: http://pythonhosted.org/django-extensions/runserver_plus.html

Instale django-extensions e pyOpenSSL:

Pip instale django-extensions pyOpenSSL

E depois correr:

Python manage.py runserver_plus --cert

 3
Author: Googol, 2013-09-09 09:09:24
Consegui configurar o ssl no servidor de teste do django usando o stunnel. Aqui está alguma informação sobre como configurá-lo

Apenas uma nota, eu não era capaz de fazê-lo funcionar usando o pacote fornecido pelo debian no apt-get e eu tive que instalar a partir do Código. No caso de você ter que fazer o mesmo, por favor confira as excelentes instruções fóruns debian sobre como construir pacotes debian. Há muitas instruções on-line e também sobre FAQ stuntnel sobre como criar o seu pem certificado, mas em última análise dpkg-buildpackage no Debian o construiu para mim.

Imagino que as coisas poderiam ser mais direitas nas janelas.

Eu então fui capaz de fazer o pydev no eclipse iniciar o servidor de teste (e também anexá-lo) adicionando uma variável de ambiente HTTPS=1 em "Configurações de depuração" - > "Ambiente" - > Variáveis

 1
Author: Ivan Alagenchev, 2012-06-15 08:01:17