์ต์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๊ทธ๋ ์ด๋ ๊ฐ์ด๋๊ฐ ์์ต๋๊น?
0.12.0์์ 0.13.1๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ถ๊ฐ ์ ๋ณด์๋ ๊ด์ฌ์ด ์์ต๋๋ค.
sudo luarocks install lua-resty-auto-ssl
์ ์คํํ๋ฉด ํ์ฌ 0.12.0 ๊ตฌ์ฑ/์ค์ ์ด ์ง์์ง๋์?
์๋๋ฉด @ronaldgetz ๊ฐ ์ ๊ณต ํ ๋๋ก ํ์๋ ํ์ผ์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ ์์ ํฉ๋๊น?
ํฐ์.
12์์ 13.1๋ก ์
๊ทธ๋ ์ด๋๋ฅผ ์๋ฃํ์ต๋๋ค sudo luarocks install lua-resty-auto-ssl
๋งํผ ๊ฐ๋จํ๊ณ $ sudo systemctl restart openresty
๋ก openresty๋ฅผ ๋ค์ ์์ํฉ๋๋ค. :)
@aviatrix ๊ฐ์ฌํฉ๋๋ค! ๋ฐ๋ผ์ nginx ๊ตฌ์ฑ ๋๋ ๊ธฐํ ํญ๋ชฉ์ ๋ฎ์ด์ฐ์ง ์์๋์ง ํ์ธํ๊ธฐ ์ํด? ๋๋ ๋ด ์์์ ๋ง์ ์ผ์ด ์ผ์ด๋๊ณ ์๋ค.
๋ฐฉ๊ธ ์ ๋๋ฉ์ธ ๋ฐ๊ธ์ ํ ์คํธํ์ผ๋ฉฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๊ฐ ์์ ๋๊ฑฐ๋ ์ํฅ์ ๋ฐ๋์ง ์์ ํ ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋๋ ์ ๊ทธ๋ ์ด๋๋ ํด์ผ ํ ๊ฒ ๊ฐ์๋ฐ...
@bryanus ๋ ๋ฌด์์ด๋ ํ๊ธฐ ์ ์ ํญ์ ๋ฐฑ์
์ ํฉ๋๋ค! ๋๋ ์ด๊ฒ์ ์ด๋ ต๊ฒ ๋ฐฐ์ ๋ค.
๊ตฌ์ฑ์ด ์๋ ๊ฒฝ์ฐ ๊ฐ์ธ ์ ์ฅ์์ ๋ฒ์ ์ ์ด์ ๋ณด๊ดํ๊ณ ๋ง์ผ์ ๋๋นํ์ฌ ๋ฏธ๋ฆฌ conf ํด๋๋ฅผ cpํ์ญ์์ค.
์ด ์
๋ฐ์ดํธ( 13.1)๋ Let's Encrypt ์๋ฒ์ ํต์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ข
์์ฑ Dehydrated
์ ์
๋ฐ์ดํธํ์ฌ Let's Encrypt์ v1 ACME ํ๋กํ ์ฝ ์ฌ์ฉ ์ค๋จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์
๋ฐ์ดํธํ์ง ์์ผ๋ฉด ํ ๋ฌ ์ ๋ ํ์ ์ ์ธ์ฆ์๋ฅผ ์ป์ ์ ์์ต๋๋ค.
@aviatrix ๊ฐ์ฌํฉ๋๋ค! ํด๋ณด๊ณ ์ฌ๊ธฐ์ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ ๊ตฐ์. ์ ๊ทธ๋ ์ด๋/์ค์น ๋ช ๋ น์ ์คํํ๊ณ openresty๋ฅผ ๋ค์ ์์ํ์ ์ฆ์ ์ค์ ์ด ์ค๋จ๋์์ต๋๋ค.
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
์ด ์ข๊ฒ๋ ์ด๊ฒ์ ์คํ ์ด์ง ์๋ฒ์ ์์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ด ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. @aviatrix์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? ๋ผ์ธ ํธ์ง ์ ํจ์นํ๊ณ ๊ณ์ ์๋ํ๋์ง ํ์ธํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
์ ๋ฐ์ดํธ: ๊ทธ๋์ ์ง๊ธ์ ๋จ์ํ @ronaldgetz ํจ์น๋ก ํ์๋ ํ์ผ์ ์ง์ ํธ์งํ๊ณ ๋ชจ๋ ๊ฒ์ด openresty๋ฅผ ๋ค์ ์์ํ ํ ์๋ํฉ๋๋ค. ์ ์ฒด ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ ๋ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ํ์ ํ๊ณ ํ์ ํ๋ ๋์ ์ ์ ๊ธฐ๋ค๋ ค์ผ ํ ์๋ ์์ต๋๋ค. ํจ์น๊ฐ "์ถฉ๋ถํ" ์ข๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@bryanus ๋๋ฉ์ธ ํ์ดํธ๋ฆฌ์คํธ์ ์ฌ์ฉ์ ์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น? ์ด ์ฌ์ฉ์ ์ ์ ํจ์๋ lua-resty-auto-ssl์ ์ต์ ๋ฆด๋ฆฌ์ค๊ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ ์ธ์๋ฅผ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค(์: ์ฌ์ฉ์ ์ ์ ํ ์คํธ ํ์ผ์ ํ์ดํธ๋ฆฌ์คํธ๋ก ๋ก๋ํ๊ธฐ ์ํด cat ๋ช ๋ น์ ํธ์ถํ๋ ๊ฒฝ์ฐ). ์ด์ ์ ์ธ์๋ ์ด์ ์ ๋ฌธ์์ด ๋์ ํ ์ด๋ธ์ด์ด์ผ ํฉ๋๋ค. ํ ๋ฒ์ ๋ฐฐํฌ์์๋ ๊ทธ ๋ฌธ์ ๋ฅผ ๋ณด์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ฐ๋ ์ถ์ธกํ์ง ๋ชปํ์ต๋๋ค.
@andreasschroth ์์ฐ! ๊ทธ๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ ํ๊ณ ์๋ ์ผ์ ๋๋ค! ๋ด ๊ตฌ์ฑ์ ์์ํ ํ ์คํธ ํ์ผ์์ ๋๋ฉ์ธ์ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ณ ์์ต๋๋ค.
````
init_by_lua_block {
auto_ssl = ("resty.auto-ssl" ํ์).new()
auto_ ssl:set ("allow_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()
}
````
๊ฐ์ ์ผ์ํ๊ณ ์์์ต๋๊น? ๋ด ์ ธ ๋ช ๋ น์ ํ ์ด๋ธ๋ก ์ ๋ฌํ๋๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ฝ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค. ์ด์ ๋ํ ๋ฌธ์๋ฅผ ๋ ํํค์ณ์ผ ํฉ๋๋ค. ์ด๋ป๊ฒ ํด๊ฒฐํ์ จ๋์? ์ด ํ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@bryanus ์ด ์ฝ๋๋ฅผ ์๋ํ์ญ์์ค:
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()
}
์ค๋ช :
์ปค๋ฐ https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 lua-resty-auto-ssl์ฉ https://github.com/GUI/lua-shell-games ์ ์ ๋ฒ์ ๊ตฌํ ์ฌ๊ธฐ.
์์ฝํ์๋ฉด shell_execute()
ํจ์์ API๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค(๋งค๊ฐ๋ณ์ ๋ฐ ๋ฐํ๊ฐ).
๊ฐ์ธ์ ์ผ๋ก Nginx์์ Lua ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ๋ ๊ฒ์ ์ ๋ชฝ์ ๋๋ค. ์๋ง๋ ์ธ์ ๊ฐ๋ ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
@andreasschroth ๊ฐ์ฌํฉ๋๋ค. ๋๋ lua-resty-shell ๋ชจ๋์ ๊ตฌ๋ฌธ์ ๊ฒํ ํ๊ณ ์์๊ณ ๋ณ๊ฒฝ์ด ๊ทธ๋ ๊ฒ ๊ฐ๋จํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์๊ฐ์ ๋ด์ด ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. (์๋ง๋ ๋ด์ผ) ์๋ํด ๋ณด๊ณ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค!
ํจ๊ณผ๊ฐ์๋ค! ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค @andreasschroth. ๋ด ์กฐ๊ฑด๋ถ ์ถ๋ ฅ๋ ์์ ํ๋ค๋ ์ฌ์ค์ ๋ชฐ๋์ต๋๋ค. ๋ด๊ฐ ์ฒ์ ์๊ฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ด ์ฐธ์ฌํ๋ค. ์, nginx ๊ตฌ์ฑ์์ Lua๋ฅผ ๋๋ฒ๊น ํ๋ ๊ฒ์ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ํ์ง๋ง ํฐ ๋์์ด ๋๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋์์ง ์์ต๋๋ค! ๊ฑด๋ฐฐ! ;-)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@bryanus ์ด ์ฝ๋๋ฅผ ์๋ํ์ญ์์ค:
์ค๋ช :
์ปค๋ฐ https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 lua-resty-auto-ssl์ฉ https://github.com/GUI/lua-shell-games ์ ์ ๋ฒ์ ๊ตฌํ ์ฌ๊ธฐ.
์์ฝํ์๋ฉด
shell_execute()
ํจ์์ API๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค(๋งค๊ฐ๋ณ์ ๋ฐ ๋ฐํ๊ฐ).๊ฐ์ธ์ ์ผ๋ก Nginx์์ Lua ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ๋ ๊ฒ์ ์ ๋ชฝ์ ๋๋ค. ์๋ง๋ ์ธ์ ๊ฐ๋ ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.