
私は、Docker イメージ (docker.io/existdb/teipublisher) を実行している ECS インスタンスで certbot を実行しようとしています。イメージは正常に動作し、カスタム サブドメインに関連付けました。teipub.dh-dev.com弾性 IP を使用します。
Https 接続を確立するために certbot をインストールして実行しようとすると、驚くほど困難であることがわかりました。
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 nginx
、sudo systemctl status httpd
またはsudo systemctl status apache2
Docker イメージを実行しているクリーンな ECS EC2 インスタンスでは、これらのサービスを見つけることができません。そのため、実行しようとする前に nginx は実行されていないどころか、インストールされていません。
そこで質問なのですが、ECS インスタンスにはすでに Web サーバーがあるのではないでしょうか。それは何ですか。それに certbot をインストールできますか。あるいは、ポート 80 でリッスンしているのは何ですか。
あるいは、ECS インスタンスで certbot を使用する別の方法はありますか?
ところで、これは関係ないと思うのですが、私のメインドメイン(dh-dev.comとホームページ) は、おそらくホスティング プロバイダーから提供された証明書を通じて、https 接続を許可します。
===更新===
@dave_thompson_085 のコメントに従って、呼び出されたプロセスがdocker-proxy
ポート 80 と 443 でリッスンしていることがわかりました (下の画像を参照)。そのため、nginx を使用してこれらのポートで certbot を構成することはできません。どのように進めればよいか、ご意見をお聞かせください...