Lua-resty-auto-ssl: рдПрдЪрдЯреАрдЯреАрдкреА рд╕реЗ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╕реЗ рдирдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдордИ 2020  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: auto-ssl/lua-resty-auto-ssl

HTTP рдХреЛ https рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИ
рдореИрдВ nginx.conf рдореЗрдВ рдкреЛрд░реНрдЯ 80 рдкрд░ HTTP рдЕрдиреБрд░реЛрдз рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛

server {
    listen 80;
    server_name _;
    location /.well-known/acme-challenge/ {
      content_by_lua_block {
        auto_ssl:challenge_server()
      }
    }
    return 301 https://$host$request_uri;
  }

рдпрд╣ рдЗрд╕ рддрд░рд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ

Processing five.fortunekit.com
 + Creating new directory /etc/resty-auto-ssl/letsencrypt/certs/five.fortunekit.com ...
 + Signing domains...
 + Generating private key...
 + Generating signing request...
 + Requesting new certificate order from CA...
 + Received 1 authorizations URLs from the CA
 + Handling authorization for five.fortunekit.com
 + 1 pending challenge(s)
 + Deploying challenge tokens...
deploy_challenge
 + Responding to challenge for five.fortunekit.com authorization...
invalid_challenge
Invalid challenge: DOMAIN=five.fortunekit.com RESPONSE={
  "type": "http-01",
  "status": "invalid",
  "error": {
    "type": "urn:ietf:params:acme:error:connection",
    "detail": "Fetching https://five.fortunekit.com/.well-known/acme-challenge/geyhMh-KOQTyNQRDIurMja32h3Xjd4nmiE9UkFBn15w: Timeout after connect (your server may be slow or overloaded)",
    "status": 400
  },
  "url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/4699231438/-vRiFQ",
  "token": "geyhMh-KOQTyNQRDIurMja32h3Xjd4nmiE9UkFBn15w",
  "validationRecord": [
    {
      "url": "http://five.fortunekit.com/.well-known/acme-challenge/geyhMh-KOQTyNQRDIurMja32h3Xjd4nmiE9UkFBn15w",
      "hostname": "five.fortunekit.com",
      "port": "80",
      "addressesResolved": [
        "35.154.129.216"
      ],
      "addressUsed": "35.154.129.216"
    },
    {
      "url": "https://five.fortunekit.com/.well-known/acme-challenge/geyhMh-KOQTyNQRDIurMja32h3Xjd4nmiE9UkFBn15w",
      "hostname": "five.fortunekit.com",
      "port": "443",
      "addressesResolved": [
        "35.154.129.216"
      ],
      "addressUsed": "35.154.129.216"
    }
  ]
}
 err: Can't load ./.rnd into RNG
140653820678592:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=./.rnd
, context: ssl_certificate_by_lua*, client: 106.210.248.44, server: 0.0.0.0:443
2020/05/20 10:36:17 [error] 4144#4144: *4 [lua] ssl_certificate.lua:97: issue_cert(): auto-ssl: issuing new certificate failed: dehydrated failure, context: ssl_certificate_by_lua*, client: 106.210.248.44, server: 0.0.0.0:443
2020/05/20 10:36:17 [error] 4144#4144: *4 [lua] ssl_certificate.lua:291: auto-ssl: could not get certificate for five.fortunekit.com - using fallback - failed to get or issue certificate, context: ssl_certificate_by_lua*, client: 106.210.248.44, server: 0.0.0.0:443
2020/05/20 10:36:35 [error] 4144#4144: *12 [lua] ssl_certificate.lua:68: issue_cert(): auto-ssl: failed to obtain lock: timeout, context: ssl_certificate_by_lua*, client: 66.133.109.36, server: 0.0.0.0:443
2020/05/20 10:36:35 [error] 4144#4144: *12 [lua] ssl_certificate.lua:291: auto-ssl: could not get certificate for five.fortunekit.com - using fallback - failed to get or issue certificate, context: ssl_certificate_by_lua*, client: 66.133.109.36, server: 0.0.0.0:443
2020/05/20 10:36:36 [error] 4144#4144: *16 [lua] ssl_certificate.lua:68: issue_cert(): auto-ssl: failed to obtain lock: timeout, context: ssl_certificate_by_lua*, client: 34.209.232.166, server: 0.0.0.0:443

рдЗрд╕рд╕реЗ 429 рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ

{
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/",
  "status": 429
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдк рдЧрд░реНрдд рдирд╣реАрдВ рдЦреЛрджрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ nginx location рдмреНрд▓реЙрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди :

 # wildcard HTTP server for domains
  server {
    listen 80;
    server_name _;
    # Endpoint used for performing domain verification with Let's Encrypt.
    location /.well-known/acme-challenge/ {
      content_by_lua_block {
        auto_ssl:challenge_server()
      }
    }
    location / {
      return 301 https://$host$request_uri;
    }

рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдЯ рдкрд░ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП nginx рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ 301 рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдЯ рдореЗрдВ return рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдХрднреАред

рд╕рднреА 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдк рдЧрд░реНрдд рдирд╣реАрдВ рдЦреЛрджрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ nginx location рдмреНрд▓реЙрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди :

 # wildcard HTTP server for domains
  server {
    listen 80;
    server_name _;
    # Endpoint used for performing domain verification with Let's Encrypt.
    location /.well-known/acme-challenge/ {
      content_by_lua_block {
        auto_ssl:challenge_server()
      }
    }
    location / {
      return 301 https://$host$request_uri;
    }

рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдЯ рдкрд░ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП nginx рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ 301 рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдЯ рдореЗрдВ return рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдХрднреАред

рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

discobean picture discobean  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jasonbouffard picture jasonbouffard  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

serathius picture serathius  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kshnurov picture kshnurov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stackrainbow picture stackrainbow  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ