Lua-resty-auto-ssl: OCSP 응닡 μ‹€νŒ¨(6: μŠΉμΈλ˜μ§€ μ•ŠμŒ)

에 λ§Œλ“  2020λ…„ 07μ›” 22일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: auto-ssl/lua-resty-auto-ssl

μ§€λ‚œ λ©°μΉ  λ™μ•ˆ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

[lua] ssl_certificate.lua:260: set_response_cert(): auto-ssl: failed to set ocsp stapling for **xxx** - continuing anyway - failed to get ocsp response: failed to validate OCSP response (http://ocsp.int-x3.letsencrypt.org): OCSP response not successful (6: unauthorized), context: ssl_certificate_by_lua*, client: 37.233.4.76, server: 0.0.0.0:443

μΈμ¦μ„œκ°€ λ§Œλ£Œλ˜μ–΄ OCSP μŠ€ν…Œμ΄ν”Œλ§μ„ μ‚¬μš©ν•  수 없을 λ•Œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μ΄μ§€λ§Œ μ²˜μŒλΆ€ν„° μ˜¬λ°”λ₯΄κ²Œ κ°±μ‹ λ˜μ§€ μ•ŠλŠ” μ΄μœ κ°€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

nginx version: openresty/1.17.8.2
   0.13.1-1 (installed) - /usr/local/lib/luarocks/rocks

lua-resty-http
   0.15-0 (installed) - /usr/local/lib/luarocks/rocks

μ§€κΈˆμ€ λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. redisμ—μ„œ μΈμ¦μ„œ μ‚­μ œ
  2. 둜컬 볡사본 μ‚­μ œ(/etc/resty-auto-ssl/letsencrypt/certs)
  3. λ‹€μ‹œ μ‹œμž‘

λˆ„κ΅¬λ“ μ§€ λ¬Έμ œκ°€ 될 μˆ˜μžˆλŠ” 것에 λŒ€ν•œ 지침이 μžˆμŠ΅λ‹ˆκΉŒ?
λ˜λŠ” OCSP μŠ€ν…Œμ΄ν”Œλ§μ„ μ™„μ „νžˆ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

νŽΈμ§‘ν•˜λ‹€.
renew_check_interval 도 μ„€μ •λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ 기본값은 1일이어야 ν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @phil118 λ‹€μŒ 파이썬 슀크립트λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ https://gist.github.com/ronaldgrn/f1a99fde2f380c7d94233466aa88d8fd

만료 3일 전에 μΈμ¦μ„œλ₯Ό μ‚­μ œν•©λ‹ˆλ‹€.
예방 쑰치둜 ν•œ 번의 μ‹€ν–‰μ—μ„œ 25개 μ΄μƒμ˜ λ§Œλ£Œλ˜κ±°λ‚˜ 거의 만료된 μΈμ¦μ„œλ₯Ό κ°μ§€ν•˜λ©΄ μŠ€ν¬λ¦½νŠΈκ°€ μ€‘μ§€λ©λ‹ˆλ‹€. ν•„μš”μ— 맞게 νŽΈμ§‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  8 λŒ“κΈ€

λˆ„κ΅°κ°€μ—κ²Œ λ„μ›€μ΄λœλ‹€λ©΄ 만료 3 일 전에 redisμ—μ„œ μΈμ¦μ„œλ₯Ό μ‚­μ œν•˜λŠ” 슀크립트λ₯Ό μž‘μ„±ν•˜κ²Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œ 같은 문제. μ™œ 일뢀 도메인 갱신은 μ‹€νŒ¨ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” μ‹€νŒ¨ν–ˆλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
μ–΄μ¨Œλ“  μ†”λ£¨μ…˜μ— λŒ€ν•΄ @ronaldgrn μ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!

@ronaldgrn Im은 κ°±μ‹ λ˜μ§€ μ•ŠλŠ” 도메인이 λͺ‡ 개뿐인 λΉ„μŠ·ν•œ 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. μž‘λ…„μ— μ™„λ²½ν•˜κ²Œ μž‘λ™ν–ˆκΈ° λ•Œλ¬Έμ— 맀우 μ΄μƒν•œ λ™μž‘μž…λ‹ˆλ‹€.

μ•ˆμ „ μ˜ˆλ°©μ±…μœΌλ‘œ μœ μ‚¬ν•œ 슀크립트λ₯Ό μΆ”κ°€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. Redisμ—μ„œ μŠ€ν¬λ¦½νŠΈκ°€ λ‚ μ§œλ³„λ‘œ μΈμ¦μ„œλ₯Ό μ‚­μ œν•˜λŠ” 방법을 μ„€λͺ…/κ³΅μœ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

λ§Žμ€ 감사

μ•ˆλ…•ν•˜μ„Έμš” @phil118 λ‹€μŒ 파이썬 슀크립트λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ https://gist.github.com/ronaldgrn/f1a99fde2f380c7d94233466aa88d8fd

만료 3일 전에 μΈμ¦μ„œλ₯Ό μ‚­μ œν•©λ‹ˆλ‹€.
예방 쑰치둜 ν•œ 번의 μ‹€ν–‰μ—μ„œ 25개 μ΄μƒμ˜ λ§Œλ£Œλ˜κ±°λ‚˜ 거의 만료된 μΈμ¦μ„œλ₯Ό κ°μ§€ν•˜λ©΄ μŠ€ν¬λ¦½νŠΈκ°€ μ€‘μ§€λ©λ‹ˆλ‹€. ν•„μš”μ— 맞게 νŽΈμ§‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@ronaldgrn 멋지닀! κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λŠ” 파이썬의 μ™„μ „ν•œ μ΄ˆλ³΄μžμ΄λ―€λ‘œ 맀우 μœ μš©ν•©λ‹ˆλ‹€.

@ronaldgrn Thx 많이. λ‚˜λ„ 같은 문제λ₯Ό μ•ˆκ³ μžˆμ–΄. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ python 3μ—μ„œ 슀크립트λ₯Ό μ‹€ν–‰ν•˜κ³  openstreyλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜μ‹­μ‹œμ˜€.
도메인 갱신을 μœ„ν•œ ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. @ronaldgrn κ³Ό 같은 아이디어, λ‚˜λŠ”

schedule.scheduleJob('5 0 * * *',{

  • 토큰을 μ–»κΈ° μœ„ν•΄ openresty에 끝점을 λ§Œλ“­λ‹ˆλ‹€(exp: /getSecret).
  • redisμ—μ„œ 만료 도메인 κ°€μ Έμ˜€κΈ°
  • resty-auto-ssl/dehydrated λ₯Ό μ‚¬μš©ν•˜μ—¬ ν† ν°μœΌλ‘œ 도메인 κ°±μ‹  && ν”Œλž˜κ·Έ μΆ”κ°€ restartOpenresty
  • ν”Œλž˜κ·Έκ°€ 있으면 μ„œλ²„λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜μ‹­μ‹œμ˜€.
    });

κ°±μ‹  λ¬Έμ œλŠ” https://github.com/auto-ssl/lua-resty-auto-ssl/issues/241#issuecomment -695777480으둜 ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μž‘λ™ν•˜λ €λ©΄ /etc/resty-auto-ssl/storage/file 의 νŒŒμΌλ„ μ‚­μ œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰