Hel*_*nar 23 python django ssl
我计划通过收取信用卡来销售产品,因此使用SSL对于Django支持的网站至关重要.我对此非常天真.
我最初的django设置计划是使用Apache作为网络服务器,并使用mod_wsgi与Django进行通信,Apache再次提供静态媒体.在SSL协议达成计划之前,一切似乎都很好.
我将使用SSL协议用于用户帐户配置页面,整个购买顺序,也许在django管理员.
我检查了官方文件并用Google搜索,但答案相当令人困惑.
谢谢
cod*_*ape 28
我已经使用Apache mod_ssl和Linux在SSL上部署了Django应用程序mod_wsgi.
我不是Apache专家,但这里是我为一个站点设置SSL的方法(将下面的指令放在httpd.conf文件中,或放在从该文件引用的文件中,例如在sites-enabled目录中,如果在Apache安装中使用的话).请参阅下面的第一个文档链接,了解如何创建和使用自签名证书.
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/certificatefile.crt
SSLCertificateKeyFile /etc/apache2/ssl/certificatekeyfile.crt
WSGIScriptAlias / /path/to/file.wsgi
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
文档链接:
sha*_*ond 14
对于那些来自谷歌的人来说,这是Nginx的示例配置:
server {
listen 443 ssl default;
server_name example.com;
ssl on;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
add_header Cache-Control "public, must-revalidate";
# add_header Cache-Control "no-cache";
expires 1d;
add_header Strict-Transport-Security "max-age=2592000; includeSubdomains";
location / {
fastcgi_pass localhost:8000;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_pass_request_headers on;
# include fastcgi_params;
}
location /static {
root /home/myapp/application;
}
location = /favicon.ico {
root /home/myapp/application/assets;
access_log off;
log_not_found off;
}
}
Run Code Online (Sandbox Code Playgroud)
Django不处理SSL的问题.Apache将透明地为您处理这个问题,Django将照常工作.您可以在视图中检查SSL request.is_secure().
但是,您必须在适当的位置提供链接作为https网址.您还可能希望将某些http页面重定向到https页面(如django管理界面).
| 归档时间: |
|
| 查看次数: |
15394 次 |
| 最近记录: |