使用let加密而无需控制根目录

时间:2016-07-18 18:23:09

标签: django apache ssl lets-encrypt certbot

我正在运行Django网站并使用let加密我的SSL。框架的配置使得我无法访问:http://url.com/.xxxx

我可以免费访问的是: http://url.com/static/.xxxx

我的/ static / URL可以接受并托管任何随机文件,以便加密需求。有没有办法让certbot支持/ static /而不是只使用/为URL?

由于

修改

我发现一个可以接受的工作对我来说是可以接受的。进一步挖掘,我发现/.well-known/始终是SSL检查的基本目录。这意味着我们可以添加一个静态目录,它可以很好地与certbot一起使用。在这里,首先将其添加到您的apache配置中:

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

然后将其添加到settings.py文件中:

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

将此添加到您的urls.py:

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

重置您的网络服务器。现在你有一个特殊的url /.well-known/,它将托管任何文件certbot所需的文件。

我还是比这更好的答案。

1 个答案:

答案 0 :(得分:4)

如果其他用户像谷歌那样来这种方式,这就是我改善这种情况的方法:

我在运行ACME应用程序时为Let's Encrypt创建Django挑战时,我对我的选项不满意。 So, I rolled my own solution and created a Django app!基本上,您可以将ACME个问题作为另一个对象进行管理,应用程序将生成正确的终点网址。

只需pip install django-letsencrypt并按照README即可。