在Nginx中使用certbot的问题

时间:2018-11-09 10:24:40

标签: reactjs nginx https lets-encrypt certbot

我实际上是在开发Web应用程序,我在前端使用Reactjs,在后端使用Golang。这两个程序分别托管在Google-Compute-Engine上的2个VM上。我想通过https来提供我的应用程序,因此我选择使用Nginx来为生产中的前端提供服务。首先,我为Nginx制作了配置文件:

#version: nginx/1.14.0 (ubuntu)
server {
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/banshee;
     server_name XX.XXX.XX.XXX; #public IP of my frontend VM

     index index.html;

     location / {
       try_files $uri /index.html =404;
     }
   }

对于这部分,一切都按预期进行,但是之后,我想在this tutorial之后的https上投放我的应用程序。我安装了软件包software-properties-commonpython-certbot-apache certbot,但是当我尝试

sudo cerbot --nginx certonly

我收到以下消息:

gdes@frontend:/etc/nginx$ sudo certbot --nginx certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not choose appropriate plugin: The requested nginx plugin does not appear to be installed
The requested nginx plugin does not appear to be installed

我在Google和此处进行了一些搜索,但仍然无法弄清缺少哪个插件或其他解决方法。

有人有帮助我的想法吗?

非常感谢:)

4 个答案:

答案 0 :(得分:3)

您需要更换

apt install python-certbot-nginx

作者

apt install python3-certbot-nginx

答案 1 :(得分:1)

您可以使用以下命令安装Certbot nginx插件:

add-apt-repository ppa:certbot/certbot
apt update
apt install python-certbot-nginx

答案 2 :(得分:0)

我试图使用certbot为我的子域创建let'sencrypt证书,但出现以下问题。 命令:

  

ubuntu @ localhost:〜$ certbot --nginx -d my_subdomain.website.com

问题:

  

请求的nginx插件似乎未安装

解决方案:

  

ubuntu @ localhost:〜$ sudo apt-get install python-certbot-nginx

答案 3 :(得分:0)

在 Debian 10 上,certbot 返回“找不到可用的 nginx 二进制文件”问题,因为路径中缺少“/usr/sbin”。将 /usr/sbin 添加到 PATH

export PATH=/usr/sbin:$PATH

然后certbot可以为nginx制作证书

certbot --nginx -d <server name> --post-hook "/usr/sbin/service nginx restart"

debian wiki page for letsencrypt 所述。