#2352 рдХреА рддрд░рд╣ред рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд┐рддреНрд░рд╡рдд рдмрдирд╛рдПрдВ.
рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рдирд╣реАрдВред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдФрд░ рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рдеред
рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрдо рддреМрд░ рдкрд░ рд╕реАрдзреЗ рдФрд░ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рд╣реЛрдиреЗ рд╕реЗ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рдВ
рдирдорд╕реНрддреЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрдЧреВрдард╛ред рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдореБрдЭреЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдЦреБрд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕реЗ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рднреА рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХреЗрдВ?
@fox27374 рдХреНрдпрд╛ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ window.PAGE_DATA
рдорд╛рди рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЖрдк рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рдд рдХрдВрд╕реЛрд▓ OAuth рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП?
рдирдорд╕реНрддреЗ,
рдпрд╣рд╛рдБ рд╡рд┐рдВрдбреЛ рд╣реИред PAGE_DATA рдФрд░ рд╕рд╛рде рд╣реА рд╡рд╣ рдХрдорд╛рдВрдб рдЬреЛ рдореИрдВ рд╢рдкрде рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБред рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ (рд▓реИрдм рд╕реАрдП рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЖрдВрдХрдбрд╝реЗ
window.PAGE_DATA = {
"error": {
"code": 7,
"message": "error:pkg/web/oauthclient:exchange (token exchange refused)",
"details": [{
"@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
"namespace": "pkg/web/oauthclient",
"name": "exchange",
"message_format": "token exchange refused",
"code": 7
}]
}
};
COMMAND
docker-compose run --rm stack is-db create-oauth-client --id console --name "Console" --owner admin --secret "SM2CE7335KDAIILCA76KETRHDQTTDAQTDJHBSL6RCOX3WFZFDZ4Q" --redirect-uri "https://lora01.ntslab.loc/console/oauth/callback" --redirect-uri "/console/oauth/callback"
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдЪреАрдпрд░реНрд╕,
рдбреИрдирд┐рдпрд▓
@ Fox27374 рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ OAuth URL рдХреНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд /token
URL рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ? рдЖрдк рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ lora01.ntslab.loc
рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдбреЙрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдерд┐рдВрдЧреНрд╕ рд╕реНрдЯреИрдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ?
рдирдорд╕реНрддреЗ,
рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдпрд╣рд╛рдВ рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рд╛рдордЧреНрд░реА рдЕрднреА рддрдХ рд╕рдордЭрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рд╕реЗрдЯрдЕрдк рд╣реИред рдореИрдВ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕рд░реНрд╡рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ :)
рд╣рд╛рдВ, рдореИрдВ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЙрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреАрдЯреАрдПрди рд╕реНрдЯреИрдХ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред lora01.ntslab.loc рдХреЛ рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд╛рдо рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
/рдЯреЛрдХрди рдпреВрдЖрд░рдПрд▓ рд╣реИ:
рдЯреЛрдХрди-рдпреВрдЖрд░рдПрд▓: ' https://lora01.ntslab.loc/oauth/token '
рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ docker-compose.yml рдФрд░ ttn-lw-stack.yml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди ( start.sh ) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБред
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,
рдбреИрдирд┐рдпрд▓
рд╣рд╛рдп @ рдлреЙрдХреНрд╕27374
рд╣рд╛рдВ, рдореИрдВ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЙрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреАрдЯреАрдПрди рд╕реНрдЯреИрдХ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред lora01.ntslab.loc рдХреЛ рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд╛рдо рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдЖрдкрдХреА рдорд╢реАрди рдХреА /etc/hosts
рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╣реИ? рдпрд╣ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрдЯреИрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреА рдЬрд╛ рд░рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$ docker-compose stack exec nc -z lora01.ntslab.loc
рдЖрдкрдХреЛ nc: bad address 'lora01.ntslab.loc'
рдХреА рддрд░реНрдЬ рдкрд░ рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ docker-compose.yaml рдореЗрдВ extra_hosts
рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
# docker-compose.yaml
services:
# ...
stack:
# ...
extra_hosts:
- "lora01.ntslab.loc:YOUR_IP_ADDRESS"
# ...
рдФрд░ docker-compose up -d
. рдХреЗ рд╕рд╛рде рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ
рд╣реЛрд╕реНрдЯрдирд╛рдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рддрдм рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред (рд▓реЗрдХрд┐рди, рдЕрдЧрд░ YOUR_IP_ADDRESS
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ 127.0.0.1
, рддреЛ рдлрд┐рд░ рднреА рдЖрдкрдХреЛ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ)
рдирдорд╕реНрддреЗ @neoaggelos
рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЖрдИрдкреА/рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ рд╕реАрдзреЗ DNS рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрдВрдиреЗ docker-compose.yml рдореЗрдВ "extra_hosts" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реАред
рдореБрдЭреЗ рдбрд░ рд╣реИ, рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред
рдореИрдВрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдРрд╢ рд╢реЗрд▓ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдбреАрдПрдирдПрд╕ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреА:
$ nslookup lora01.ntslab.loc
Name: lora01.ntslab.loc
Address 1: 172.24.89.120 lora01.ntslab.loc
рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рдж рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ , рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдУрде рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╡реНрдпрд╕реНрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ....
рдзрдиреНрдпрд╡рд╛рдж
рд╡реИрд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐рд╕реА рдФрд░ рдХреЛ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдирдорд╕реНрддреЗ @neoaggelos
рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЖрдИрдкреА/рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ рд╕реАрдзреЗ DNS рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрдВрдиреЗ docker-compose.yml рдореЗрдВ "extra_hosts" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реАред
рд╣рдореНрдо, рдЙрдЪрд┐рдд DNS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ extra_hosts
рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рдбрд░ рд╣реИ, рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред
рдореИрдВрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдРрд╢ рд╢реЗрд▓ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдбреАрдПрдирдПрд╕ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреА:
$ nslookup lora01.ntslab.loc Name: lora01.ntslab.loc Address 1: 172.24.89.120 lora01.ntslab.loc
172.24.89.120
рдбреЙрдХрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рдж рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ , рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдУрде рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╡реНрдпрд╕реНрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ....
рдзрдиреНрдпрд╡рд╛рдж
рдЕрдкрдиреА рдХреБрдХреАрдЬрд╝ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рд╕реНрд╡рдЪреНрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рд╕реЗ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕рд╛рде рд╣реА, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕реНрдЯреИрдХ cat /var/run/secrets/cert.pem
рд╕реЗ рдареАрдХ рд╕реЗ рдкрдврд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдПрдХ рдЦреЛрд▓ рд╕реЗ cat /var/run/secrets/key.pem
рдЙрд╕ рдПрдХ рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рд╖рдп рд╕реЗ рдкрд░реЗ; рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рд╕реНрдЯреИрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рд╕рдлрд▓ рд╣реБрдП?
рдирдорд╕реНрддреЗ,
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ 172.24.89.120 рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдореЗрдВ рд╣реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рд╣реИред рдбреЙрдХрд░ рдкрддреЗ 172.9.0.X рд╣реИрдВ
рдореИрдВ рдирд┐рдЬреА рдореЛрдб рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХреЛрдИ рдХреБрдХреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдХреБрдВрдЬреА рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ "thethings" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдкрдардиреАрдп рд╣реИ:
/ $ whoami
thethings
/ $ cat /var/run/secrets/key.pem
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7IjZoBd2Mu4Ev
AYDrEh6mBWYw5cRDA02F10OQpbQbm6RigFbODM2owGRyCkkZfAUL2VV9xl5TzdMl
I6IecaA7/F7TpciuiJHmnfRVAbDlPI6EJYybdrU7tmfdeWc/ThuVVNolJFUeap+T
OIzv9MkGbBAF19ju4PJel6z3ef+NUhc5LKfjVQZeieQULX2b9+Hpd4ySdR2Nfzdt
......
рдореИрдВ рд╕реЗрдЯрдЕрдк рдХреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ 172.24.89.120 рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдореЗрдВ рд╣реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рд╣реИред рдбреЙрдХрд░ рдкрддреЗ 172.9.0.X рд╣реИрдВ
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕реЗ curl https://lora01.ntslab.loc
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдХреНрдпрд╛ рд╣реИ?
рдирдорд╕реНрддреЗ,
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдорд┐рд▓ рдЧрдпрд╛ред рдХрд░реНрд▓ рд╕рдВрдХреЗрдд рдПрдХ рдЕрдЪреНрдЫрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛, рдХрд┐ ca.pem рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдЯреЛрд░ рдореЗрдВ рдирд╣реАрдВ рдерд╛:
/ # curl https://lora01.ntslab.loc
curl: (60) SSL certificate problem: self signed certificate in certificate chain
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ ca.pem рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ /usr/local/share/ca-certificates/ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛
/ $ ls -la /usr/local/share/ca-certificates/ca.pem
-rw-r--r-- 1 thething thething 1310 Apr 14 11:36 /usr/local/share/ca-certificates/ca.pem
рдЗрд╕реЗ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡реЙрд▓реНрдпреВрдо рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдХрд░:
volumes:
- "./data/blob:/srv/ttn-lorawan/public/blob"
- "./config/stack:/config:ro"
- "./config/stack/cert/ca.pem:/usr/local/share/ca-certificates/ca.pem"
рдЕрдм рдореИрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдФрд░ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдВред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!
рдХреНрдпрд╛ рдпрд╣ TTN рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛/рдЗрдЪреНрдЫрд┐рдд рддрд░реАрдХрд╛ рд╣реИ?
рдмрд╣реБрдд рдЬрд▓реНрджреА рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрде рдЯреЛрдХрди рдЕрднреА рднреА рдбреАрдмреА рдореЗрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕рдмрдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ ca.pem рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрдЯреЛрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
docker exec -it --user root ttn-server_stack_1 /usr/sbin/update-ca-certificates
рдлрд┐рд░ рд╢рдкрде рдЧреНрд░рд╛рд╣рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдбреАрдмреА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
@ Fox27374 рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдорд┐рд▓ рдЧрдпрд╛ред рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реИред
рд╕реНрдЯреИрдХ рдЖрдкрдХреЗ рд╕реАрдП рдХреЗ рд╕рд╛рде TTN_LW_TLS_ROOT_CA
(рдпрд╛ tls.root-ca
), рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред рджреЗрдЦреЗрдВ https://thethingsstack.io/v3.7.0/reference/configuration/the-things-stack/
@johanstokking : рдореИрдВрдиреЗ docker-compose.yml рдореЗрдВ рдлреЛрд▓реЛрдЗрдВрдЧ рдЬреЛрдбрд╝рд╛ рд╣реИ
......
secrets:
- cert.pem
- key.pem
- ca.pem
secrets:
cert.pem:
file: config/stack/cert/cert.pem
key.pem:
file: config/stack/cert/key.pem
ca.pem:
file: config/stack/cert/ca.pem
рдЗрд╕ рддрд░рд╣, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ /run/secrets рдФрд░ /var/run/secrets рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореИрдВрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЗрд╕ рдкреНрд░рддреНрдпрдХреНрд╖рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреАред
рдореИрдВрдиреЗ рдЬреЛрдбрд╝рд╛
TTN_LW_TLS_ROOT_CA: "/var/run/secrets/ca.pem"
docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВред рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ ttn-lw-stack.yml рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
tls:
source: "file"
root-ca: "/var/run/secrets/ca.pem"
certificate: "/var/run/secrets/cert.pem"
key: "/var/run/secrets/key.pem"
рдЗрдзрд░ рднреА рдРрд╕рд╛ рд╣реА рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдУрде рдХреНрд▓рд╛рдЗрдВрдЯ рдУрдПрд╕ рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕реЗ рд╣реА рдореИрдВ ca.pem рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж, рдбреЗрдирд┐рдпрд▓
рд╕реАрд╕реА @adriansmares
рдирдорд╕реНрддреЗ, рдпрд╣рд╛рдБ рдХреЛрдИ рдЦрдмрд░ рд╣реИ? рдореИрдВрдиреЗ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред
@ Fox27374 рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
$ curl -cacert /var/run/secrets/ca.pem https://lora01.ntslab.loc
@adriansmares рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рджреЛ рдЪреАрдЬреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ;
net
рддреНрд░реБрдЯрд┐ рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ stdlibtls.root-ca
рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВрд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,
рдореБрдЭреЗ рд╡рд╣реА 403 рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ рдмреЙрдХреНрд╕ (рд╡рд░реНрдЪреБрдЕрд▓ рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде) рдХреЗ рднреАрддрд░ рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рдЯреАрдЯреАрдПрди рд╕реНрдЯреИрдХ v3 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред - рд╕рд╛рд▓реНрдЯрд╕реНрдЯреИрдХ рд░реЗрд╕рд┐рдкреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рд╕реИрдВрдбрдмреЙрдХреНрд╕ред
рдореИрдВрдиреЗ рдбреАрдПрдирдПрд╕ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
letsencrypt
рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рдХреБрдЫ рдореМрдЬреВрджрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредinsecure
рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАрдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ root-ca
рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдПрдХ рдкреНрд░рд╢реНрди рд╣рд╛рд▓рд╛рдВрдХрд┐: рдЖрдкрдХреЗ рдЬреНрдЮрд╛рди рд╕реЗ, рдХреНрдпрд╛ рдЗрд╕реЗ рдЯреАрдПрд▓рдПрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ рдмреЙрдХреНрд╕ рдХреЗ рднреАрддрд░ рджреЗрд╡ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗрдВрдЧреЗ?
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рд╡реАрдкреАрдПрд╕ рдкрд░ рдпрд╣ letsencrypt
рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реЛрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рджред
c/shared
рдЬреЛрдбрд╝рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧ рдЪреАрдЬ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╣рд╛рдп, рджреЗрд░ рд╕реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдореИрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд░реНрд▓ рдХреЗрд╡рд▓ --cacert рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ ca.pem рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЯрд╕реНрдЯреЗрдб рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ:
/ $ whoami
thethings
/ $ curl https://lora01.ntslab.loc
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
/ $ curl --cacert /var/run/secrets/ca.pem https://lora01.ntslab.loc
/ $
рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ OAuth рдХреНрд▓рд╛рдЗрдВрдЯ TLS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рдордиреЗ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ nginx рдХреЛ рд╕рднреА ssl/tls рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ nginx рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИрдВ:
nginx.conf
stream {
include stream_conf.d/*.conf;
}
stream_conf.d/mqtt.conf
log_format mqtt '$remote_addr [$time_local] $protocol $status $bytes_received '
'$bytes_sent $upstream_addr';
upstream ttn1 {
server stack-ip:1881;
zone tcp_mem 64k;
}
upstream ttn2 {
server stack-ip:1882;
zone tcp_mem 64k;
}
upstream ttn3 {
server stack-ip:1883;
zone tcp_mem 64k;
}
server {
listen 8881 ssl; # MQTT secure port
preread_buffer_size 1k;
ssl_certificate /etc/letsencrypt/live/FQDN/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/FQDN/privkey.pem; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:128m; # 128MB ~= 500k sessions
ssl_session_tickets on;
ssl_session_timeout 8h;
proxy_pass ttn1;
proxy_connect_timeout 1s;
}
server {
listen 8882 ssl; # MQTT secure port
preread_buffer_size 1k;
ssl_certificate /etc/letsencrypt/live/FQDN/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/FQDN/privkey.pem; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:128m; # 128MB ~= 500k sessions
ssl_session_tickets on;
ssl_session_timeout 8h;
proxy_pass ttn2;
proxy_connect_timeout 1s;
server {
listen 8883 ssl; # MQTT secure port
preread_buffer_size 1k;
ssl_certificate /etc/letsencrypt/live/FQDN/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/FQDN/privkey.pem; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:128m; # 128MB ~= 500k sessions
ssl_session_tickets on;
ssl_session_timeout 8h;
proxy_pass ttn3;
proxy_connect_timeout 1s;
}
server {
listen 1881; # MQTT secure port
preread_buffer_size 1k;
proxy_pass ttn1;
proxy_connect_timeout 1s;
}
server {
listen 1882; # MQTT secure port
preread_buffer_size 1k;
proxy_pass ttn2;
proxy_connect_timeout 1s;
}
server {
listen 1883; # MQTT secure port
preread_buffer_size 1k;
proxy_pass ttn3;
proxy_connect_timeout 1s;
}
рдЖрдкрдХреЛ рд╕рднреА рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдкреЛрд░реНрдЯ = 1884, 1885, 1887):
server {
server_name FQDN;
location / {
proxy_pass http://stack-ip:PORT;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_buffering off;
}
listen [::]:PORT ipv6only=on; # managed by Certbot
listen PORT; # managed by Certbot
}
рдФрд░ рдпрд╣ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП (рдкреЛрд░реНрдЯ/рдкреЛрд░реНрдЯреНрд╕рдПрд╕рдПрд▓ = 1885/443, 1884/8884, 1887/8887):
server {
server_name FQDN;
location / {
proxy_pass http://stack-ip:PORT;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_buffering off;
}
listen [::]:PORTSSL ssl ipv6only=on; # managed by Certbot
listen PORTSSL ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/FQDN/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/FQDN/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @wasn-eu!
рдпрд╣ #1760 рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред
рдирдорд╕реНрддреЗ,
рдЙрдмрдВрдЯреВ рдкрд░ рдЯреАрдЯреАрдПрди 3.7 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдлреЙрдХреНрд╕27374 рдХреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ (https://github.com/fox27374/lora-stack) рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореЗрд░реА рд╕реНрдерд╛рдкрдирд╛ VM рдФрд░ Ubuntu рдкрд░ рд╣реИред рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдБред "рдЯреЛрдХрди рдЕрд╕реНрд╡реАрдХреГрдд рдПрдХреНрд╕рдЪреЗрдВрдЬ"
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,
рд╣рд╛рдп @ramampiandra ,
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд▓реИрдХ рдЪреИрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд╣реА рд╣реИрдВ:
рд╕рд░реНрдЯ.рдкреЗрдо
openssl x509 -in cert.pem -text -noout | grep -A 1 Identifier
X509v3 Subject Key Identifier:
26:78:63:90:E7:1C:09:B7:DA:B3:7D:81:F0:DE:47:6B:AE:16:58:79
X509v3 Authority Key Identifier:
keyid:86:32:F5:56:44:21:EC:E3:2A:D9:5F:6E:87:82:7A:67:C2:F1:77:E8
рд╕реАрдП.рдкреАрдИрдПрдо
openssl x509 -in ca.pem -text -noout | grep -A 1 Identifier
X509v3 Subject Key Identifier:
86:32:F5:56:44:21:EC:E3:2A:D9:5F:6E:87:82:7A:67:C2:F1:77:E8
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ cert.pem рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреБрдВрдЬреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ca.pem рдореЗрдВ рд╡рд┐рд╖рдп рдХреБрдВрдЬреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╕реНрдЯреИрдХ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рд╕рднреА рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдКрдкрд░ рд╣реИрдВ, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ (рдЕрдкрдиреЗ TTN рдХрдВрдЯреЗрдирд░ рдХреЗ рдирд╛рдо рдкрд░ "ttn-server_stack_1" рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ):
docker exec -it --user root ttn-server_stack_1 /usr/sbin/update-ca-certificates
рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ ca.pem рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕реАрдзреЗ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:
docker-compose exec stack "/bin/ash"
curl https://YOURSERVER.YOUR.DOMAIN
рдЖрдкрдХреЛ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдпрд╛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред
рдЖрд╢рд╛ рд╣реИ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛,
рдЪрд┐рдпрд░реНрд╕
рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдУрдПрде рдкреНрд░рд╡рд╛рд╣ рджреНрд╡рд╛рд░рд╛ рдЯреАрдПрд▓рдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░) рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЖрдЬ рдмрд╛рдж рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
@kschiffer рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдмрд╕ рдореБрдЭреЗ рдкреЛрд╕реНрдЯ рдХрд░рддреЗ рд░рд╣реЗрдВ рддрд╛рдХрд┐ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХреВрдВред
рдирдорд╕реНрддреЗ! рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ?
@dgraposo рдЗрд╕реЗ 3.8.1 . рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ "рдЯреЛрдХрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛" рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ # 2511 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдЖрдЧреЗ # 2521 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдХрд╛рд░рдг рдерд╛ред
рдпрд╣ рдореБрджреНрджрд╛ рдЕрдм рдЕрдкрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рдХреЛ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирддреЗ рд╣реИрдВ рддреЛ рдЙрдЪрд┐рдд рджрд╛рдпрд░реЗ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ,
рдЙрдмрдВрдЯреВ рдкрд░ рдЯреАрдЯреАрдПрди 3.7 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдлреЙрдХреНрд╕27374 рдХреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ (https://github.com/fox27374/lora-stack) рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореЗрд░реА рд╕реНрдерд╛рдкрдирд╛ VM рдФрд░ Ubuntu рдкрд░ рд╣реИред рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдБред "рдЯреЛрдХрди рдЕрд╕реНрд╡реАрдХреГрдд рдПрдХреНрд╕рдЪреЗрдВрдЬ"
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,