Lua-resty-auto-ssl: Upgrade-Leitfaden

Erstellt am 1. Juli 2019  ·  11Kommentare  ·  Quelle: auto-ssl/lua-resty-auto-ssl

Wie aktualisiere ich auf die neueste Version? Ist eine Upgrade-Anleitung verfügbar?

Hilfreichster Kommentar

@bryanus Bitte versuchen Sie diesen Code:

init_by_lua_block {
    auto_ssl = (require "resty.auto-ssl").new()
    auto_ssl:set("allow_domain", function(domain)

    -- reading from domains.txt and in testing

    local shell_execute = require "resty.auto-ssl.utils.shell_execute"
    local ngx_re = require "ngx.re"
    local result, err = shell_execute({"cat", "/home/user/domains.txt"})

    if err then
      ngx.log(ngx.ERR, "allow_domain cat error: ", err)
    else
      local domains = ngx_re.split(result["output"], "\n")
      for _, d in ipairs(domains) do
        if (domain == d) then
          return true
        end
      end
    end

    return false

    end)
    auto_ssl:set("renew_check_interval", 43200)
    auto_ssl:init()
  }

Erläuterung:

Commit https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 implementiert die neue Version von https://github.com/GUI/lua-shell-games für lua-resty-auto-ssl Hier.

Zusammenfassend hat sich die API der Funktion shell_execute() geändert (Parameter sowie Rückgabewerte).

Ich persönlich halte das Debuggen von Lua-Code in Nginx für einen Albtraum. Vielleicht wird es irgendwann einfacher.

Alle 11 Kommentare

Ich bin auch an weiteren Informationen zur Durchführung des Upgrades von 0.12.0 auf 0.13.1 interessiert.

Führe ich einfach sudo luarocks install lua-resty-auto-ssl aus oder löscht das meine aktuellen 0.12.0-Konfigurationen/Setup?

Oder ist es sicherer, die dehydrierte Datei zu aktualisieren, wie @ronaldgetz bereitgestellt hat ?

TIA.

Ich habe das Upgrade von 12 auf 13.1 durchgeführt, es ist so einfach wie sudo luarocks install lua-resty-auto-ssl und Openresty mit sudo systemctl restart openresty neu zu starten :)

Danke @aviatrix! Also, nur um zu bestätigen, dass es Ihre Nginx-Konfigurationen nicht überschrieben hat oder so? Bei mir ist viel los.

Ich habe gerade die Ausgabe einer neuen Domain getestet und bin auf keine Fehler gestoßen, daher ist mir nicht ganz klar, was dadurch behoben wird oder ob ich betroffen bin? Aber ich denke, ich sollte trotzdem upgraden...

@bryanus macht immer Backups, bevor ihr irgendetwas tut! Ich habe das auf die harte Tour gelernt.
Wenn Sie Konfigurationen haben, behalten Sie sie in einem privaten Repo in der Versionskontrolle und cp den conf-Ordner vorher, nur für den Fall.

Dieses Update (13.1) behebt die Ablehnung des v1 ACME-Protokolls durch Let's Encrypt, indem es die Abhängigkeit Dehydrated aktualisiert, die zur Kommunikation mit Let's Encrypt-Servern verwendet wird. Wenn Sie nicht aktualisieren, können Sie in etwa einem Monat keine neuen Zertifikate mehr erhalten.

Danke @aviatrix! Ich werde es mal ausprobieren und hier berichten.

Huch. Ich habe den Upgrade/Install-Befehl ausgeführt und mein Setup wurde sofort beim Neustart von openresty unterbrochen:

2019/11/08 21:06:23 [error] 2973#2973: *113 [lua] ssl_certificate.lua:310: ssl_certificate(): auto-ssl: failed to run do_ssl: /usr/local/openresty/luajit/share/lua/5.1/shell-games.lua:233: bad argument #1 (table expected, got string), context: ssl_certificate_by_lua*, client: 103.3.244.23, server: 0.0.0.0:443

Glücklicherweise war dies auf einem Staging-Server, daher versuche ich derzeit, diesen Fehler zu beheben. Irgendwelche Ideen @aviatrix? Ich frage mich, ob ich einfach die Zeilenbearbeitungen einfügen und sehen kann, ob das die Dinge am Laufen hält.

Update: Also habe ich die dehydrierte Datei vorerst einfach direkt mit dem Patch von @ronaldgetz bearbeitet, und nach dem Neustart von openresty funktioniert alles. Möglicherweise muss ich mich festhalten, während ich versuche, den Fehler herauszufinden, den ich beim vollständigen Upgrade erhalten habe. Hoffentlich ist der Patch "gut genug"?

@bryanus Benutzt du vielleicht eine benutzerdefinierte Funktion für die Domain-Whitelist? Diese benutzerdefinierte Funktion könnte das Problem sein, da die neueste Version von lua-resty-auto-ssl einen anderen Weg verwendet, um Shell-Argumente zu übergeben (z. B. wenn Sie den cat-Befehl aufrufen, um eine benutzerdefinierte Textdatei als Whitelist zu laden). Die Shell-Argumente müssen jetzt eine Tabelle statt einer Zeichenfolge sein. Nur eine Vermutung aus dem Nichts, weil ich dieses Problem auch in einer Bereitstellung gesehen habe.

@andreasschroth Wow! Genau das mache ich! Ich setze Domains aus einer ewigen Textdatei in meiner Konfiguration auf die Whitelist:

````
init_by_lua_block {
auto_ssl = (erfordert "resty.auto-ssl").new()
auto_ ssl:set ("allow_domain", function(domain)

-- reading from domains.txt and in testing

local shell_execute = require "resty.auto-ssl.utils.shell_execute"
local ngx_re = require "ngx.re"
local status, output, err = shell_execute("cat /home/user/domains.txt")

if err then
  ngx.log(ngx.ERR, "allow_domain cat error: ", err)
else
  local domains = ngx_re.split(output, "\n")
  for _, d in ipairs(domains) do
    if (domain == d) then
      return true
    end
  end
end

return false

end)
auto_ssl:set("renew_check_interval", 43200)
auto_ssl:init()

}
````

Hast du das gleiche gemacht? Ich bin ein wenig verwirrt darüber, wie ich meine Shell-Befehle strukturieren soll, die als Tabelle übergeben werden sollen. Dazu muss ich mich noch weiter in die Doku vertiefen. Wie hast du deine gelöst? Vielen Dank für diesen Tipp!

@bryanus Bitte versuchen Sie diesen Code:

init_by_lua_block {
    auto_ssl = (require "resty.auto-ssl").new()
    auto_ssl:set("allow_domain", function(domain)

    -- reading from domains.txt and in testing

    local shell_execute = require "resty.auto-ssl.utils.shell_execute"
    local ngx_re = require "ngx.re"
    local result, err = shell_execute({"cat", "/home/user/domains.txt"})

    if err then
      ngx.log(ngx.ERR, "allow_domain cat error: ", err)
    else
      local domains = ngx_re.split(result["output"], "\n")
      for _, d in ipairs(domains) do
        if (domain == d) then
          return true
        end
      end
    end

    return false

    end)
    auto_ssl:set("renew_check_interval", 43200)
    auto_ssl:init()
  }

Erläuterung:

Commit https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 implementiert die neue Version von https://github.com/GUI/lua-shell-games für lua-resty-auto-ssl Hier.

Zusammenfassend hat sich die API der Funktion shell_execute() geändert (Parameter sowie Rückgabewerte).

Ich persönlich halte das Debuggen von Lua-Code in Nginx für einen Albtraum. Vielleicht wird es irgendwann einfacher.

Danke @andreasschroth. Ich habe die Syntax für das lua-resty-shell-Modul überprüft und festgestellt, dass die Änderung nicht so einfach sein kann. Vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen. Ich werde es versuchen (wahrscheinlich morgen) und berichten!

Es klappt! Danke für deine Hilfe @andreasschroth. Ich wusste nicht, dass Sie auch meine bedingte Ausgabe geändert haben; beteiligter als ich zuerst dachte. Ja, das Debuggen von Lua in Nginx-Konfigurationen ist schmerzhaft, aber mit etwas großartiger Hilfe nicht so schlimm! Prost! ;-)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

ronaldgetz picture ronaldgetz  ·  10Kommentare

byrnedo picture byrnedo  ·  16Kommentare

stackrainbow picture stackrainbow  ·  20Kommentare

jasonbouffard picture jasonbouffard  ·  6Kommentare

kshnurov picture kshnurov  ·  3Kommentare