Lua-resty-auto-ssl: izinkan_domain frekuensi panggilan

Dibuat pada 6 Okt 2017  ·  6Komentar  ·  Sumber: auto-ssl/lua-resty-auto-ssl

Kami telah menerapkan layanan web untuk melakukan validasi domain. Yang membuat kami penasaran adalah dampak kinerja dari mengeluarkan permintaan web dalam metode allow_domain ? Juga seberapa sering metode ini disebut? Apakah ini disebut HANYA sebelum urutan Let's Encrypt?

Tampaknya jika ada sertifikat untuk domain dalam penyimpanan yang tidak perlu kita panggil allow_domain .

Mungkin sedikit lebih banyak dari jenis penjelasan ini akan berguna dalam dokumen.

Terima kasih.

Semua 6 komentar

Disebut apakah Anda memiliki sertifikat atau tidak. Secara pribadi saya memeriksa apakah kami sudah memiliki sertifikat sebelum saya bertanya kepada backend kami apakah boleh membuat yang baru.

-- first check if we have the certificate already, else check with backend if we allow it 
    local certstorage = auto_ssl:get("storage")

    local fullchain_pem, privkey_pem = certstorage:get_cert(domain)
    if fullchain_pem then
      return true
    else ...

Saya agak khawatir tentang dampak overhead/kinerja juga, tetapi saya masih dalam tahap perencanaan dan belum sampai sejauh ini.

@brianlund terima kasih telah berbagi. Saya telah menerapkan lua_shared_dict untuk 'cache' hasil kami dari layanan web tersebut.

    auto_ssl:set("allow_domain", function(domain)
      local http = require "resty.http"
      local httpc = http.new()
      local cjson = require "cjson"
      local our_allow_domain_cache = ngx.shared.our_allow_domain_cache

      local found = our_allow_domain_cache:get(domain)

      if found == nil then
        local res, err = httpc:request_uri("[is domain allowed web service]"..domain, {
          method = "GET",
        })

        if not res then
          found = false
        else
          local data = cjson.decode(res.body)
          found = data.found
        end

        -- Cache for 60 seconds, for now...
        our_allow_domain_cache:set(domain, found, 60)
      else
        if found then
          -- Known good domain, keep it in cache for a little longer
          our_allow_domain_cache:set(domain, found, 300)
        end
      end

Saya sangat menyukai ide Anda untuk memeriksa layanan auto_ssl:get("storage") . Saya mungkin pergi dengan sesuatu yang serupa. Bisakah kita berasumsi ini terjadi pada setiap permintaan? Atau apakah lua_shared_dict auto_ssl menggunakan lapisan caching untuk penyimpanan? Sepertinya mungkin: https://github.com/GUI/lua-resty-auto-ssl/blob/master/lib/resty/auto-ssl/ssl_certificate.lua#L20

Saya ingin tahu apakah akan lebih baik dalam contoh Anda untuk memeriksa:
ngx.shared.auto_ssl:get("domain:fullchain_der:" .. domain) vs memanggil storage secara langsung.

Saya percaya ngx.shared.auto_ssl:get("domain:fullchain_der:" .. domain) hanya memeriksa cache memori bersama. Saya berencana untuk menjalankan banyak node jadi perlu sesuatu yang dibagikan di antara mereka (penyimpanan redis). Saya suka solusi cache Anda, itu akan menghemat banyak panggilan ke layanan penyimpanan, jika saya melihat ada masalah dengan memanggilnya sesering itu, saya akan mengingatnya.

Saya ingin mengucapkan terima kasih @jasonbouffard untuk kode demo Anda di sana - itu adalah blok bangunan yang sangat berguna bagi saya! Menghargai itu!

Bisakah kita berasumsi ini terjadi pada setiap permintaan?

Ini adalah pertanyaan yang sangat bagus.

Asumsi saya adalah metode ini dipanggil ketika tidak ada sertifikat untuk domain, tetapi saya tidak yakin tentang itu.
Sudah bisa konfirmasi @jasonbouffard ?

@Alir3z4

Saya juga penasaran dengan hal ini.
Dokumen tidak begitu transparan tentang ini, jadi saya harus memeriksa kode sumbernya.

Jadi, pada setiap permintaan, auto-ssl melakukan ini:

  • mencoba mendapatkan sertifikat dari kamus ngx.shared.auto_ssl , yang di-cache selama 1 jam
  • memanggil metode allow_domain ditentukan pengguna
  • mencoba mendapatkan sertifikat dari penyimpanan
  • membuat sertifikat baru

Akan sempurna untuk menjelaskan ini di README.md.
Terima kasih!

Sumber:

https://github.com/auto-ssl/lua-resty-auto-ssl/blob/86d3c94807ad1585b464fad2d4defb379f9c152a/lib/resty/auto-ssl/ssl_certificate.lua#L104 -L157

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

ronaldgetz picture ronaldgetz  ·  10Komentar

byrnedo picture byrnedo  ·  16Komentar

jmvbxx picture jmvbxx  ·  6Komentar

n11c picture n11c  ·  13Komentar

prionkor picture prionkor  ·  11Komentar