jjzjj

Docker Traefik 和 Letsencrypt 通配符

coder 2023-05-27 原文

我一直在尝试让 traefik 在我的域上安装通配符证书,这需要 dns 挑战 从阅读日志来看,它似乎能够实际颁发证书但没有正确安装它们

time="2018-04-07T19:10:35Z" level=debug msg="Unable to marshal provider conf *acme.Provider with error: json: unsupported type: chan *acme.StoredData"
legolog: 2018/04/07 19:10:57 [INFO][example.tld] The server validated our request
legolog: 2018/04/07 19:10:58 [INFO][*.example.tld] acme: Validations succeeded; requesting certificates
legolog: 2018/04/07 19:11:01 [INFO][*.example.tld] Server responded with a certificate.
time="2018-04-07T19:11:01Z" level=error msg="Error loading new configuration, aborted unable to generate TLS certificate : tls: failed to find any PEM data in certificate input"
time="2018-04-07T19:12:33Z" level=debug msg="http2: server: error reading preface from client ******omitted***: remote error: tls: unknown certificate authority"

我的域名 DNS 提供商是 cloudflare

这是我的 docker docker-compose.yml

version: '2'

services:
  traefik:
    image: traefik:1.6.0-rc4
    command: --api --docker
    restart: always
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/traefik/traefik.toml:/traefik.toml
      - /opt/traefik/acme.json:/acme.json
    environment:
      - CLOUDFLARE_EMAIL=admin@example.tld
      - CLOUDFLARE_API_KEY=
    container_name: traefik

networks:
  web:
    external: true

还有我的 traefik.toml

debug = true

logLevel = "DEBUG"
defaultEntryPoints = ["https","http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]

[retry]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.tld"
watch = true
exposedbydefault = false

[acme]
email = "admin@example.tld"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
acmeLogging = true
[acme.dnsChallenge]
  provider = "cloudflare"
  delayBeforeCheck = 0

[[acme.domains]]
   main = "example.tld"
[[acme.domains]]
   main = "*.example.tld"

最佳答案

我能够解决问题,这是我的错误。

在 traefik.toml 您不能将 OnHostRule = true 用于通配符证书

阅读更多: docs.traefik.io/v1.7/configuration/acme/#onhostrule

关于Docker Traefik 和 Letsencrypt 通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49711605/

有关Docker Traefik 和 Letsencrypt 通配符的更多相关文章

  1. ruby - 在 Ruby 1.9.3 上使用大括号进行通配 - 2

    如果您使用File::FNM_EXTGLOB选项,最新版本的Ruby支持在globbing中使用大括号来自2.2.0documentationFile.fnmatch('c{at,ub}s','cats',File::FNM_EXTGLOB)#=>true#{}issupportedonFNM_EXTGLOB但是,1.9.3文档说它在1.9.3中不受支持:File.fnmatch('c{at,ub}s','cats')#=>false#{}isn'tsupported(另外,尝试使用File::FNM_EXTGLOB时出现名称错误)有没有办法在Ruby1.9.3中使用大括号来glob,

  2. ruby - 带有通配符的正则表达式否定回顾 - 2

    如果附近没有其他文本block,我会尝试匹配一些文本。例如,如果"foo"不在它之前,我想匹配"bar"。我可以匹配"bar"如果"foo"没有立即在此正则表达式中使用负向后视:/(?但我也喜欢不匹配"foo12345bar"。我试过:/(?但使用通配符+范围似乎是Ruby中的无效正则表达式。我是不是想错了问题? 最佳答案 您的思考方式是正确的。但不幸的是,lookbehinds通常是固定长度的。唯一的主要异常(exception)是.NET的正则表达式引擎,它允许在lookbehind中使用重复量词。但是因为你只需要消极的回顾而不

  3. ruby - 如何在具有通配符的 RSpec 中请求(GET/POST)路由 - 2

    我在Rails中有这条(公认的丑陋的)路线:scope'/software'dopost'/:software_id/:attachment_id/event/*event'=>'software#post_event',as:'post_event'end(如果不是遗留API,我会更改它)我正在为它编写一个RSpec测试。rakeroutes给我:post_eventPOST/software/:software_id/:attachment_id/event/*event(.:format)api/version1301/software#post_event我的测试是这样的:de

  4. ruby - Ruby 中的通配符字符串匹配 - 2

    我想编写一个实用函数/模块,为字符串提供简单的通配符/全局匹配。我不使用正则表达式的原因是用户最终会使用某种配置文件提供匹配模式。我找不到任何这样稳定的gem-试过joker,但设置有问题。我正在寻找的功能很简单。例如,给定以下模式,这里是匹配项:pattern|test-string|match========|=====================|====================*hn|john,johnny,hanna|true,false,false#wildcard,similarto/hn$/i*hn*|john,johnny,hanna|true,true,

  5. sql - 用于 250K+ 字符串的通配符搜索的 Fast(er) 方法 - 2

    我在MySQL数据库中有一个英语词典,其中只有超过250K个条目,我正在使用一个简单的ruby​​前端在字符串的开头使用通配符来搜索它。到目前为止,我一直这样做:SELECT*FROMwordsWHEREwordLIKE'_e__o'甚至SELECT*FROMwordsWHEREwordLIKE'____s'我总是知道单词的确切长度,但除了一个字符之外的所有字符都可能是未知的。这比糖蜜慢,比没有前导通配符的类似查询慢大约15倍,因为无法使用该列的索引。我尝试了几种方法来缩小搜索范围。例如,我添加了26个额外的列,其中包含每个单词的单个字母计数,并首先使用这些列来缩小搜索范围。我也试过按

  6. ruby - 使用通配符检查文件是否存在 - 2

    在Ruby中,如何使用通配符检查文件是否存在?显然这似乎不起作用:File.exists?("/folderOfFile/Filename*.ext") 最佳答案 您的通配符将引用一组文件,而不是单个文件。你可以使用Dir::glob为此:!Dir.glob('/folderOfFile/Filename*.ext').empty? 关于ruby-使用通配符检查文件是否存在,我们在StackOverflow上找到一个类似的问题: https://stackov

  7. javascript - querySelectorAll,通配符元素匹配? - 2

    我正在使用document.querySelectorAll()我知道[id^='id1']将匹配所有以id1开头的ID。[id$='textBox']将匹配所有以textBox结尾的ID。但我想要这两者的结合。这就是我想要做的事情:document.querySelectorAll('[idshouldshartwithid1andendingwithtextBox]')这可能吗? 最佳答案 有可能combineselector通过没有任何空格的连接。document.querySelectorAll("[id$='textBox

  8. javascript - 如何在 sonar-project.properties 中指定通配符 - 2

    我正在尝试使用SonarQube来扫描我拥有的UI模块。UI模块很多。它们具有共同的结构。每个模块都有自己的JS文件。我需要指定sonar.sources值来匹配我项目中的所有JS文件。有可能做这样的事情吗?sonar.sources=\*/*/scriptsonar.language=js我用过这些。但是,我收到一条错误消息,提示类似“无法解析路径”的内容。有人可以帮忙吗? 最佳答案 尝试使用通配符:*Matchzeroormorecharacters**Matchzeroormoredirectories?Matchasingl

  9. javascript - jQuery 选择器中的通配符 - 2

    我想检索所有以特定ID开头的元素。经过短暂的搜索,解决方案似乎是:$('*[id^="foo_"]')选择ID以foo_开头的所有元素。虽然这个选择器语法非常合乎逻辑,但我只是想知道是否可以用更“速记”的方式来做到这一点,比如:$('#foo_*');然而,这并没有奏效。是否支持这样的wildcarting? 最佳答案 据我所知,没有本地方法可以做到这一点。然而,here是一个允许将正则表达式用于选择器的过滤器。它应该很适合你。 关于javascript-jQuery选择器中的通配符,我

  10. javascript - 使用通配符作为路径的深度路径查询 - 2

    我有一些数据,其中我尝试遵循Firebase关于扁平结构的建议,因此我没有超出我的需要。最终结果是我在这样的节点中组织了报价:quotes->clientName->quoteObjectquoteObjects有一个“dateCreated”值,我希望能够像这样提取这些数据(因为当我提取一个包含特定页面所有报价的大列表时,我然后使用对象分配来制作要显示的一大堆对象):constquotesRef=firebase.database().ref('quotes');quotesRef.orderByChild('dateCreated').on('value',snapshot=>{/

随机推荐