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 ?6 answers
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
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.
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
Já usei um túnel antes, que funcionou, mas isto é muito mais fácil e vem com muitos outros. comando.
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/
./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
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