无法通过 docker-letsencrypt-nginx-proxy-companion 启用 ssl

2024-03-02

我想通过以下方式启用 ssldocker-letsencrypt-nginx-proxy-companion。 这是 docker-compose.yml

version: "3.3"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - certs:/etc/nginx/certs:ro
      - vhostd:/etc/nginx/vhost.d 
      - html:/usr/share/nginx/html 
      - /var/run/docker.sock:/tmp/docker.sock:ro  
    restart: always
  db:
    # ---
  wordpress:
    # ---
    environment:
      # ---
      VIRTUAL_HOST: blog.ironsand.net
      LETSENCRYPT_HOST: blog.ironsand.net
      LETSENCRYPT_EMAIL: [email protected] /cdn-cgi/l/email-protection
    restart: always
  letsencrypt-nginx-proxy-companion: 
    container_name: letsencrypt
    image: jrcs/letsencrypt-nginx-proxy-companion 
    volumes: 
      - certs:/etc/nginx/certs 
      - vhostd:/etc/nginx/vhost.d 
      - html:/usr/share/nginx/html 
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      NGINX_PROXY_CONTAINER: nginx-proxy
    restart: always
networks:
  default:
    external:
      name: nginx-proxy
volumes:
  certs:
  vhostd:
  html:

docker logs letsencrypt显示证书已经存在。

/etc/nginx/certs/blog.ironsand.net /app
Creating/renewal blog.ironsand.net certificates... (blog.ironsand.net)
2020-04-09 00:03:23,711:INFO:simp_le:1581: Certificates already exist and renewal is not necessary, exiting with status code 1.
/app

但 ACME 挑战没有返回任何结果。 (失败?)

$ docker exec letsencrypt bash -c 'echo "Hello world!" > /usr/share/nginx/html/.well-known/acme-challenge/hello-world'
$

端口 443 正在侦听,但该端口从外部关闭。

// in remote server
$ sudo lsof -i:443
[sudo] password for ubuntu:
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 10910 root    4u  IPv6 633694      0t0  TCP *:https (LISTEN)

// from local pc
❯ nmap -p 443 blog.ironsand.net
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-09 09:44 JST
Nmap scan report for blog.ironsand.net (153.127.40.107)
Host is up (0.035s latency).
rDNS record for 153.127.40.107: ik1-418-41103.vs.sakura.ne.jp

PORT    STATE  SERVICE
443/tcp closed https

Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

我正在使用数据包过滤,但它对 80 和 443 开放,而且我没有使用防火墙。 我怎样才能进一步调查问题所在?


我无法直接解决你的问题,但我可以写一些提示,这样可以解决你的问题。

  1. 你的命令什么也不返回。
    bash -c 'echo "Hello world!" > /usr/share/nginx/html/.well-known/acme-challenge/hello-world'
    该命令仅写入“Hello world!”到该位置,通常不会返回任何内容。看https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Redirections https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Redirections

  2. 查看 certs 文件夹内部。
    查看 certs 文件夹并清理它们。检查该文件夹是否已正确安装在您的 nginx 容器中。对容器执行 bash 操作并检查 ssl 文件夹。

  3. 检查防火墙是否没有中断
    从外部可能没有连接吗?什么是从里面来的?登录您的 docker 主机并检查那里的连接(也许openssl https://www.feistyduck.com/library/openssl-cookbook/online/ch-testing-with-openssl.html and curl https://curl.haxx.se/是你的朋友),

  4. 不要在容器内使用 SSL。
    当有人尝试将 ssl 与 ACME 映像和“狂野安装和共享卷”一起使用时,我经常会遇到问题。但当同一个人使用普通的反向代理时,我从未听说过任何问题。我在下面解释了一个好的设置。

因此,只需从容器中删除整个 Letscrypt-code 并关闭容器的 443 端口即可。
(此外,您可以切换到非 root 映像并仅公开不需要 root 权限的端口。) 然后在你的主机上安装 nginx 并设置反向代理(类似于proxy_pass 127.0.0.1:8080)。现在安装certbot并启动它。它可以帮助您并且简单明了。
The certbot还可以维护您的证书。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法通过 docker-letsencrypt-nginx-proxy-companion 启用 ssl 的相关文章

随机推荐

  • 如何检查数组中的非零值(元素)

    我想知道如何编写一个函数来返回是否至少有三个值不等于 0 我搜索过类似的问题 但找不到任何有效的解决方案 为了解释我的问题 这里有一个例子 我有一个包含这些元素的数组 1 0 2 0 4 0 0 3 0 0 我想检查是否至少有 3 个元素不
  • file.read()、file.readline() 和迭代文件对象之间的区别[重复]

    这个问题在这里已经有答案了 我是计算机科学的新手 正在尝试在 python 中创建一个函数来打开我的计算机上的文件 我知道这个函数f readline 将当前行作为字符串抓取 但是这些函数的作用是什么f read and for line
  • Python - 将日期的字符串表示形式转换为 ISO 8601

    在Python中 如何转换这样的字符串 2010 年 12 月 16 日星期四 12 14 05 0000 为 ISO 8601 格式 同时保留时区 请注意 原始日期是字符串 输出也应该是字符串 而不是datetime或类似的东西 不过 我
  • 将 abel 包裹在复合材料中

    I have ScrolledComposite只允许垂直滚动 heighthint 400 在这个 ScrolledComposite 中 我还有另一个CompositeA 滚动高度可能超过 400 来存储所有其他小部件 我有一个很长的标
  • PIL ValueError:图像数据不足?

    当我尝试从 URL 获取图像并将其响应中的字符串转换为Image在 App Engine 内 from google appengine api import urlfetch def fetch img url try result ur
  • ConcurrentQueue 保存对象的引用或值? “内存不足”异常

    排队到 ConcurrentQueue 的对象是被复制到队列还是仅复制到它们的引用 我不明白任何场景 解释 我这样定义了一个 ConcurrentQueue BufferElement is a class I created privat
  • 可观察队列?

    是否有人编写了实现 INotifyCollectionChanged 的 Net 通用队列版本 或者是否已经在 Net 框架深处隐藏了某个版本 快速搜索没有显示任何结果 但接口很简单 扩展 Queue 类并添加对该接口的支持几乎是微不足道的
  • Dropbox SDK 401 错误

    我正在使用 Dropbox SDK 并且已将其设置为应用程序只能访问 Apps MyAPP 文件夹 我正在测试它并在线删除了该文件夹 现在 当我在应用程序中而不是要求重新链接 Dropbox 时 它会给我一个 401 错误 我不知道为什么它
  • Docker 在构建期间不会创建目录

    第一次尝试使用 Docker 在我的 Dockerfile 中执行以下步骤来创建目录 但是当我运行容器时 该目录不存在 FROM ubuntu MAINTAINER AfterWorkGuinness RUN apt get update
  • actix-web 中“扩展”的作用是什么?

    我想弄清楚如何Extension https docs rs actix web 3 3 2 actix web dev struct Extensions htmls 创建于Actix 网络 https crates io crates
  • 无法将焦点设置在 Windows 窗体文本框上

    当选项卡页首次出现时 我似乎无法在文本框中获得输入焦点 我正在使用 Windows 窗体 VB NET 3 5 我在选项卡页的面板上有一个文本框 我希望当选项卡页出现时焦点位于文本框上 我希望用户能够立即开始在聚焦的文本框中键入内容 而无需
  • 如何在 iOS 中更改 ePub 图书的字体颜色和字体样式?

    我创建了支持 pdf 和 ePub 格式的书籍应用程序 在该应用程序中 pdf 仅显示为图像 而 ePub 在 Web 视图中打开 因为 EPUB 只是存储在带有 XML 清单的 zip 文件中的 XHTML 现在 我想改变字体样式 and
  • django 中 settings.py 中的密钥中的“Django-insecure”

    创建新项目后django admin startproject my settings py包含 SECRET KEY django insecure
  • 当 Task.Status 更改为正在运行时,有没有办法收到通知?

    我正在编写一个运行任务并基于通知的类this https msdn microsoft com en us magazine dn605875 aspx 我想不出解决方案的一个问题是如何在 Task Status 离开时发出通知TaskSt
  • 如何在Java、SQL、ORM中使用money数据类型

    在 Java 应用程序中使用货币数据类型的最佳实践是什么 钱应该是双变量吗 四舍五入 货币等又如何呢 有专门的图书馆吗 最流行数据库中的 ORM 和 SQL 又如何呢 据我所知 并非所有 SQL 引擎中都是 Money 数据类型 在这种情况
  • 如果值为负数,如何更改文本颜色?

    我正在开发一个网络应用程序 它可以在整数之间进行加法 我有两个函数叫做num1 and num2 获取两个整数作为用户的输入 如果两个整数之和为负数 我想更改结果输出文本颜色 我如何使用 JavaScript 来做到这一点 我看过很多 jQ
  • Spring MVC: 标签之间的区别? [复制]

    这个问题在这里已经有答案了 前几天开始研究这个Spring Hello World教程 http viralpatel net blogs spring 3 mvc create hello world application spring
  • CSS渐变棋盘图案

    I want to create a checkerboard pattern using gradients I ve found an example and modified it to my needs however it onl
  • 如何在 Mac 上通过终端访问 XAMPP/Lampp 文件夹

    我最近开始在 Mac 上使用 XAMPP 它在 共享 下安装了 lampp 文件夹 并在 Finder 中显示为 IP 地址 因此 我可以通过 Finder 访问这些文件 但无法通过终端 cd 进入该文件夹 共享文件夹根本不可见 我尝试 V
  • 无法通过 docker-letsencrypt-nginx-proxy-companion 启用 ssl

    我想通过以下方式启用 ssldocker letsencrypt nginx proxy companion 这是 docker compose yml version 3 3 services nginx proxy image jwil