certbot nginx 没有完成
certbot nginx doesn't finish
关于 letsencrypt.org certbot 的问题。
每当我 运行 certbot --nginx
命令时,它永远不会完成该过程。
完整输出(运行ning 为 root):
$ certbot --nginx --agree-tos --redirect --uir --hsts --staple-ocsp --must-staple -d <DOMAINS> --email <EMAIL>
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for <DOMAIN>
http-01 challenge for <DOMAIN>
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/django:50
Cleaning up challenges
nginx restart failed:
b''
b''
运行 certbot certificates
:
$ certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
No certs found.
-------------------------------------------------------------------------------
我唯一搞砸的事情是在第一次 运行ning certbot 之前没有正确配置我的 DNS(弄乱了我的 A 记录等;我是新手 :P),但是我不知道下一步该怎么办;这是我的第一个网络服务器,所以我仍然处于学习曲线中。我不确定这是配置错误还是其他原因。
有关信息,我正在 运行安装 DigitalOcean Django/Ubuntu 16.04 droplet(仅编辑 /etc/nginx/sites-available/default,更改 server_name)。将在下面更新以获取所需的任何其他信息;提前致谢。 ^_^
============================================= ============================
编辑 1。
/etc/nginx/sites-enabled/django
upstream app_server {
server unix:/home/django/gunicorn.socket fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# Your Django project's media files - amend as required
location /media {
alias /home/django/django_project/django_project/media;
}
# your Django project's static files - amend as required
location /static {
alias /home/django/django_project/django_project/static;
}
# Proxy the static assests for the Django Admin panel
location /static/admin {
alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://app_server;
}
}
我认为问题在于您试图在同一个端口上指定两个 default_server
指令。这是无效的 - 只能有一个默认服务器。按如下方式更改您的配置应该可以解决您的问题:
listen 80;
listen [::]:80 default_server;
您也可以删除 ipv6only
指令,因为这是默认指令。
关于 letsencrypt.org certbot 的问题。
每当我 运行 certbot --nginx
命令时,它永远不会完成该过程。
完整输出(运行ning 为 root):
$ certbot --nginx --agree-tos --redirect --uir --hsts --staple-ocsp --must-staple -d <DOMAINS> --email <EMAIL>
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for <DOMAIN>
http-01 challenge for <DOMAIN>
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/django:50
Cleaning up challenges
nginx restart failed:
b''
b''
运行 certbot certificates
:
$ certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
No certs found.
-------------------------------------------------------------------------------
我唯一搞砸的事情是在第一次 运行ning certbot 之前没有正确配置我的 DNS(弄乱了我的 A 记录等;我是新手 :P),但是我不知道下一步该怎么办;这是我的第一个网络服务器,所以我仍然处于学习曲线中。我不确定这是配置错误还是其他原因。
有关信息,我正在 运行安装 DigitalOcean Django/Ubuntu 16.04 droplet(仅编辑 /etc/nginx/sites-available/default,更改 server_name)。将在下面更新以获取所需的任何其他信息;提前致谢。 ^_^
============================================= ============================
编辑 1。 /etc/nginx/sites-enabled/django
upstream app_server {
server unix:/home/django/gunicorn.socket fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# Your Django project's media files - amend as required
location /media {
alias /home/django/django_project/django_project/media;
}
# your Django project's static files - amend as required
location /static {
alias /home/django/django_project/django_project/static;
}
# Proxy the static assests for the Django Admin panel
location /static/admin {
alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://app_server;
}
}
我认为问题在于您试图在同一个端口上指定两个 default_server
指令。这是无效的 - 只能有一个默认服务器。按如下方式更改您的配置应该可以解决您的问题:
listen 80;
listen [::]:80 default_server;
您也可以删除 ipv6only
指令,因为这是默认指令。