2016-07-18 153 views
6

Sto eseguendo un sito Web Django e utilizzando consente di crittografare per il mio SSL. La configurazione del quadro è tale che non posso consentire l'accesso on: http://url.com/.xxxxUtilizzo consente di crittografare senza controllo sulla directory radice

Cosa posso consentire il libero accesso a è: http://url.com/static/.xxxx

mio/static/URL può accettare e ospitare qualsiasi file casuale consente esigenze crittografare . C'è un modo per avere il supporto di certbot/static/invece di usare semplicemente/per l'URL?

Grazie

EDIT

ho trovato un lavoro in giro che sia accettabile per me. Ulteriore scavo, ho trovato che /.well-known/ è sempre la directory di base per il controllo SSL. Ciò significa che possiamo aggiungere una directory statica che funzionerà bene con certbot. Ecco come, in primo luogo aggiungere questo nella vostra configurazione di Apache:

Alias /.well-known/ /var/www/XXXXX/website/static/.well-known/ 
<Directory /var/www/XXXXX/website/static/.well-known/> 
Require all granted 
</Directory> 

Poi aggiungere questo nel file settings.py:

STATIC_ENCRYPT_URL = '/.well-known/' 
STATIC_ENCRYPT_ROOT = '/var/www/XXXXX/website/static/' 

Aggiungi questo nella vostra urls.py:

urlpatterns = [ 
    ... 
] + static(settings.STATIC_ENCRYPT_URL, document_root=settings.STATIC_ENCRYPT_ROOT) 

Reimposta il tuo server web. Ora hai un URL speciale /.well-known/che ospiterà qualsiasi file richiesto da certbot.

Vorrei ancora una risposta migliore di questa.

+1

Disabilita temporaneamente django ed esegue un semplice server TCP file. – hjpotter92

+2

Che funzionerà bene su dev, ma non posso portare offline il server di produzione in questo modo. –

+0

Ci vuole meno di 2 minuti per l'intero processo di LetsEncrypt. Puoi anche provare a utilizzare il piano gratuito di CloudFlare per ssl. – hjpotter92

risposta

4

Nel caso in cui altri utenti arrivano in questo modo, come ho fatto da Google, ecco come ho migliorato questa situazione:

ero insoddisfatto dalle mie opzioni quando si è venuto a creare ACME sfide per Encrypt Let quando si esegue un Django applicazione. So, I rolled my own solution and created a Django app! Fondamentalmente, puoi gestire le tue sfide ACME come un altro oggetto e l'app produrrà l'URL finale appropriato.

Semplicemente pip install django-letsencrypt e seguire lo README per essere sulla buona strada.