Letencrypt续订失败:无法绑定到IPv4或IPv6 ..跳过

时间:2017-06-30 21:59:35

标签: lets-encrypt

我收到的完整错误消息是:

Attempting to renew cert from /etc/letsencrypt/renewal/somedomain.com.conf produced an unexpected error: Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.

这是在AWS ubuntu 14.04实例上运行的。所有端口都是开放的,443是开放的。

有人有什么想法吗?

12 个答案:

答案 0 :(得分:39)

当您的服务器已在端口443上运行时,您可能使用(预配置)--standalone运行脚本。

您可以在续订前停止服务器并在之后启动它们。

男人说:

--apache          Use the Apache plugin for authentication & installation
--standalone      Run a standalone webserver for authentication
--nginx           Use the Nginx plugin for authentication & installation
--webroot         Place files in a server's webroot folder for authentication
--manual          Obtain certificates interactively, or using shell script hooks

如果我使用--apache续订,我就不会收到任何错误。

答案 1 :(得分:24)

在执行此操作之前,您只需要停止所有正在运行的服务器,如Apache,nginx或OpenShift。

答案 2 :(得分:6)

正如其他答案所示,您需要为正在运行的网络服务器传递选项,例如:

没有webserver param:

sudo certbot renew
  

Cert需要续订,自动续订...
  续订现有证书
  执行以下挑战:example.com的tls-sni-01挑战   清理挑战   尝试从/etc/letsencrypt/renewal/example.com.conf续订证书(example.com)产生了意外   错误:
  绑定到端口443的问题:无法绑定到IPv4或IPv6 ..   跳过。

然后,再次使用webserver param(成功):

sudo certbot renew --nginx 
  

Cert需要续订,自动续订...
  续订现有证书
  执行以下挑战:example.com的tls-sni-01挑战   等待验证......
  清理挑战

     

重新加载nginx服务器部署的新证书;全链是   /etc/letsencrypt/live/example.com/fullchain.pem

     

恭喜,所有续约都成功了。以下证书已经过   续订:/etc/letsencrypt/live/example.com/fullchain.pem(成功)

答案 3 :(得分:2)

这是因为您使用了--standalone。该选项的目的是启动一个临时的网络服务器,因为你没有一个正在运行。

下次使用--webroot方法,您就可以使用已经运行的nginx服务器。

答案 4 :(得分:2)

[这是专门针对ubuntu ]

  1. 以root用户身份登录到服务器
  2. 使用以下命令(对于nginx)停止服务器

    service nginx stop

  3. 然后更新您的证书

    certbot renew

  4. 启动服务器

    service nginx start

[提示]要检查续订证书的到期日期,请在下面输入命令

ssl-cert-check -c [Path_to_your_certificate]/fullchain.pem

例如

ssl-cert-check -c /etc/letsencrypt/live/[your_domain_name]/fullchain.pem

ssl-cert-check -c /etc/letsencrypt/live/[your_domain_name]/cert.pem

如果您的服务器中尚未安装ssl-cert-check,请使用

安装
apt install ssl-cert-check

注意:仅当证书未过期时才可以续订。如果已过期,则必须创建一个新的。

我希望这对您有帮助

答案 5 :(得分:1)

从@JKLIR借用只需运行

/etc/letsencrypt/letsencrypt-auto renew --apache >> /var/log/letsencrypt/renew.log

续订ssl证书

答案 6 :(得分:1)

对于ngnix

sudo certbot renew --nginx 

对我来说很好

答案 7 :(得分:0)

如果您尝试以普通用户身份执行certbot命令,则您may not have access to bind to port 80 and other lower ports。在这种情况下,您可以通过以下方式授予python访问权限以进行绑定:

  1. 首先,查看是否可以找到python 3+(根据需要进行调整)

    echo "$(readlink -f "$(which python3)")"
    
  2. 允许python以普通用户身份打开端口80(根据需要进行调整)

    sudo setcap CAP_NET_BIND_SERVICE=+eip "$(readlink -f "$(which python3)")"
    
  3. 重新运行失败的certbot命令。

重要:在Ubuntu 18.04上,Python被称为python3。根据操作系统以及如何获得certbot,可能会称其为许多不同的事物。此命令在操作系统之间会有所不同

警告:这些较低的端口受到充分的限制。 setcap命令有一些安全方面的考虑。您可以在这里阅读有关它们的更多信息:https://superuser.com/a/892391

答案 8 :(得分:0)

对于NodeJS / PM2用户

我在public function proses_tambah_menu(){ //$data['nama_gambar'] = $this->menu_model->view(); /*$data = array(); if($this->input->post('submit')){ $upload = $this->menu_model->insert_menu(); if($upload['result']=='success'){ $this->menu_model->save($upload); } }*/ $data['id_menu'] = $this->input->post('kode_menu'); $data['nama_menu'] = $this->input->post('nama_menu'); $data['jenismenu'] = $this->input->post('jenis-menu'); $data['satuan'] = $this->input->post('satuan'); $data['harga'] = $this->input->post('harga'); $data['nama_gambar'] = $this->input->post('image'); $data['deskripsi'] = $this->input->post('deskripsi'); $this->menu_model->insert_menu($data); redirect(site_url('C_admin/data_menu')); } 服务中使用了PM2,并且在尝试续订证书时,我还收到了“问题绑定到端口80:无法绑定到IPv4或IPv6。”错误消息。

如上面对NodeJS / Apache的回答所述,停止我的服务然后尝试续订即可解决问题。

Ngnix

答案 9 :(得分:0)

首先,您需要安装NGiNX让加密插件(如果您使用NGiNX):

sudo apt install python-certbot-nginx

然后您可以安全地运行:

sudo certbot renew --nginx

它将起作用。

注意:certbot应该已经安装。

答案 10 :(得分:0)

我使用Nginx,需要先停止服务器,然后才能继续。然后我运行命令:

$ sudo ./certbot-auto  certonly --standalone -d chaklader.ddns.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for chaklader.ddns.net
Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: xxx.chakfffder@gmail.com).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/cdddddder.ddns.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/chaklader.ddns.net/privkey.pem
   Your cert will expire on 2045-01-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

答案 11 :(得分:0)

当我在单个实例上运行两个网站(主机)时,我遇到了类似的问题。我停止了Nginx,然后运行sudo certbot certonly --standalone --preferred-challenges http -d domain.com -d www.domain.com。重新启动Nginx之后,一切开始正常运行。