在 ECS 实例上运行 certbot

在 ECS 实例上运行 certbot

我正在尝试在运行 docker 映像 (docker.io/existdb/teipublisher) 的 ECS 实例上运行 certbot。该映像运行良好,我已将其与自定义子域关联teipub.dh-dev.com使用弹性 IP。

尝试安装并运行 certbot 以便可以建立 Https 连接已被证明是出奇的困难。

以 root 身份运行,我使用以下命令安装 nginx:

sudo amazon-linux-extras list | grep nginx
sudo amazon-linux-extras enable nginx1
sudo yum clean metadata
sudo yum -y install nginx

然后,来自 nginx我创作的/etc/nginx/conf.d/teipub.dh-dev.com.conf内容如下:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name teipub.dh-dev.com;
}

但现在运行时sudo nginx -c /etc/nginx/nginx.conf重新加载新配置我得到了 在此处输入图片描述

这对我来说很有意义,因为当我构建任务定义以在 ECS 集群上运行我的映像时,我在主机端口 80 和 443 以及相应的容器端口之间使用了端口映射,这意味着某些东西已经在端口 80(以及 443)上监听。

正在运行sudo systemctl status nginxsudo systemctl status httpd或者sudo systemctl status apache2在运行 docker 映像的干净 ECS EC2 实例上找不到这些服务。因此,在我尝试运行它之前,nginx 尚未安装,更不用说运行了。

所以我的问题是:ECS 实例上不是已经有 Web 服务器了吗?它是什么?我可以在上面安装 certbot 吗?或者,什么在监听端口 80?

或者 - 是否有其他方法在 ECS 实例上使用 certbot?

顺便说一句,我认为这与此无关,我的主要域名(dh-dev.com 和www.dh-dev.com) 允许 https 连接,可能通过我的托管服务提供商提供的证书。

===更新===

根据@dave_thompson_085的评论,我现在明白了(见下图)一个名为的进程docker-proxy正在监听端口 80 和 443。这就是为什么我无法使用 nginx 在这些端口上配置 certbot。任何关于如何进展的想法都欢迎...

在此处输入图片描述

相关内容