我能够在路径/etc/letsencrypt/{{mywebdomain}}/
下创建认证,并在我的服务器下设置我的nginx服务器的ssl_cert
和ssl_cert_key
绝对路径文件位置。
当我运行命令sudo nginx -t
时,我收到一个成功的配置输出,并且nginx服务器正在Django的反向代理中运行而没有任何问题。但是当我在Chrome浏览器上访问我网站的根目录时,我收到的是“http://website.com”而不是“https://website.com”。
如果有人能够使用gunicorn-django-nginx配置正确加密其域内容,请指出正确的方向。
我的网站代码段:
upstream app_server {
unix:/home/me/Documents/masterdomain/src/portfolio_revamp.sock;
}
server {
client_max_body_size 4M;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
listen www.mysite.com:80;
server_name example.com www.example.com;
http://example.com;
ssl_certificate
/etc/letsencrypt/live/mysite.com/fullchain.pem;
ssl_certificate_key
/etc/letsencrypt/live/mysite.com/privkey.pem;
root /home/akeem/Documents/SpencerMaster/src;
index templates/home.html templates/main.html;
location / {
proxy_pass
http://unix:/home/me/Documents/masterdomain/src/portfolio_revamp.sock;
alias /home/me/Documents/master/templates/home.html;
}
location ~ /.well-known {
allow all;
}
location /static {
autoindex on;
alias /home/me/Documents/masterdomain/static;
}
location /media {
autoindex on;
alias /home/me/Documents/masterdomain/media;
}
}
如果有所不同,我正在运行xenial ubuntu 16.04服务器。
答案 0 :(得分:0)
我认为问题在于您没有重定向到HTTPS - 除非您专门输入https://example.com,否则您将被定向到标准http://example.com。
我使用this guide from DigitalOcean推荐两个服务器块。在你的情况下,它看起来像:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mysite.com www.mysite.com;
return 301 https://$server_name$request_uri;
}
server {
client_max_body_size 4M;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
No server_name required here
... Everything else ...
}