Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π½ΠΈΠΆΠ΅, ΠΈΠ½Π°ΡΠ΅ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΎΡ ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° apache ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ (ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ 80/443) Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ttn.
ΠΠΎΠ½ΡΠΎΠ»Ρ TTN Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° Π½Π° 80/443 ΠΏΠΎΡΡΠ°Ρ
ΠΈ ββΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° 1885 8885 ΠΏΠΎΡΡΠ°Ρ
.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ttn Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ / ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ΅ΠΊ TTN ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DB / web Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
https://github.com/TheThingsNetwork/lorawan-stack/issues/1731
TTN ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ: ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ / ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π½Π΅ Π² Π±Π΅Π»ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
1) ΠΠΎΠ³Π΄Π° apache Π°ΠΊΡΠΈΠ²Π΅Π½ (ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ 80, 443) ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΠ° - ΡΡΠ΅ΠΊ ttn Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ 80, 443 ΠΏΠΎΡΡΠ° (80 443 Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ # Π² docker-compose.yml - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡΡΡ 1885, 8885). Π ΡΡΠΎΠΌ (docker-compose Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ letsencrypt).
docker-compose.yml
ΡΠ°ΠΉΠ»:
ports:
(hashed) - '80:1885'
(hashed) - '443:8885'
- '1882:1882'
- '8882:8882'
- '1883:1883'
- '8883:8883'
- '1884:1884'
- '8884:8884'
- '1885:1885'
- '8885:8885'
- '8886:8886'
- '1887:1887'
- '8887:8887'
- '1700:1700/udp'
env_file: '.env'
.env
file ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ» ΠΏΠΎΡΡ Π½Π° 8885 Π²ΠΌΠ΅ΡΡΠΎ 443:
TTN_LW_IS_EMAIL_NETWORK_CONSOLE_URL=https://subdomain.example.com:8885/console
TTN_LW_IS_EMAIL_NETWORK_IDENTITY_SERVER_URL=https://subdomain.example.com:8885/oauth
TTN_LW_IS_OAUTH_UI_CANONICAL_URL=https://subdomain.example.com:8885/oauth
TTN_LW_IS_OAUTH_UI_IS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_OAUTH_AUTHORIZE_URL=https://subdomain.example.com:8885/oauth/authorize
TTN_LW_CONSOLE_OAUTH_TOKEN_URL=https://subdomain.example.com:8885/oauth/token
TTN_LW_CONSOLE_UI_CANONICAL_URL=https://subdomain.example.com:8885/console
TTN_LW_CONSOLE_UI_AS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_GS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_IS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_JS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_NS_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_EDTC_BASE_URL=https://subdomain.example.com:8885/api/v3
TTN_LW_CONSOLE_UI_QRG_BASE_URL=https://subdomain.example.com:8885/api/v3
2) ΠΠΎΠ³Π΄Π° ΠΌΡ:
ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ apache (ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ apache2)
ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ ttn-stack Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (80, 443 ΠΏΠΎΡΡ - ΡΠ΄Π°Π»ΠΈΡΡ (Ρ
Π΅ΡΠΈ))
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Ρ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ, ΠΎΠ½ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ (Π½Π° ΠΏΠΎΡΡΠ°Ρ
80/443)
docker-compose.yml
ΡΠ°ΠΉΠ»:
ports:
- '80:1885'
- '443:8885'
- '1882:1882'
- '8882:8882'
- '1883:1883'
- '8883:8883'
- '1884:1884'
- '8884:8884'
(hashed) - '1885:1885'
(hashed) - '8885:8885'
- '8886:8886'
- '1887:1887'
- '8887:8887'
- '1700:1700/udp'
env_file: '.env'
.env
file ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 443 - Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ttn ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ letsencrypt
TTN_LW_IS_EMAIL_NETWORK_CONSOLE_URL=https://subdomain.example.com/console
TTN_LW_IS_EMAIL_NETWORK_IDENTITY_SERVER_URL=https://subdomain.example.com/oauth
TTN_LW_IS_OAUTH_UI_CANONICAL_URL=https://subdomain.example.com/oauth
TTN_LW_IS_OAUTH_UI_IS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_OAUTH_AUTHORIZE_URL=https://subdomain.example.com/oauth/authorize
TTN_LW_CONSOLE_OAUTH_TOKEN_URL=https://subdomain.example.com/oauth/token
TTN_LW_CONSOLE_UI_CANONICAL_URL=https://subdomain.example.com/console
TTN_LW_CONSOLE_UI_AS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_GS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_IS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_JS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_NS_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_EDTC_BASE_URL=https://subdomain.example.com/api/v3
TTN_LW_CONSOLE_UI_QRG_BASE_URL=https://subdomain.example.com/api/v3
3) Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (ΠΏΠΎΡΡ 80/443, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ apache, ttn ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 1885/8885 Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ) - ΠΈ Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π° https://subdomain.domain.com : 8885 /.
...
...
...
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ ttn, ΠΈ apache Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅?ΠΈΠ»ΠΈ force ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡ?
...
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ The Things Stack Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ TLS Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠΊΡΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌ Π·Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ TLS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ HTTP, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ gRPC, MQTT ΠΈ Ρ. Π.). Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»Π΅ΠΉ TLS ΡΡΠ΅ΠΊΠ° Π²Π΅ΡΠ΅ΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠΊΡΠΈ.
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ Π»ΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠΆΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ apache / nginx / haproxy / envoy / etc.
ΠΡΠΈΠ²Π΅Ρ @htdvisser , Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ.
Π― ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ / ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ lte) - Ρ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅ΡΠΈ.
Π― ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» VPS (ovh.eu) Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° - ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, ΠΎΠ½ Π±Π΅Π· ΠΏΡΠΎΠΊΡΠΈ ΠΈ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠΎΠ² (ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ DoS).
ΠΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΡΠ΅Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΡ 80/443 Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ / ip-ΡΡΠ°Π½ΡΠΈΠΈ).
ΠΠΎΠ·ΠΆΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΡ (1885/8885).
ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ VPS ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠΌΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ / ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ IP- ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅ΡΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΡΠΌΠΎΡΡΡ Π½Π° Β«ΡΠΊΡΠ°Π½ ΠΆΡΡΠ½Π°Π»Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΒ» ΠΈ Π²ΠΈΠΆΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Β«ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Ρ Π°ΠΊΠ΅ΡΡΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈΒ», ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΡΠ΅ΠΊ TTN (ΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅Π±-Π°ΡΠ°ΠΊΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΡ http / htts). ΠΠΎΠΌΠ΅Π½ / ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ DNS-Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠΎΠ±ΠΎΡΡ / ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΠΎΠ±ΠΎΡΡ-Ρ Π°ΠΊΠ΅ΡΡ ΠΈΡΡΡ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ IP4-Π°Π΄ΡΠ΅ΡΠ° Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΈ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΈ Π°ΡΠ°ΠΊΠΎΠ²Π°Π½ΠΎ Ρ Π°ΠΊΠ΅ΡΡΠΊΠΈΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠ°ΡΡΠΎΠ²ΡΠΌΠΈ Π°ΡΠ°ΠΊΠ°ΠΌΠΈ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ http / https, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π° 100% Π·Π°ΡΠΈΡΠ΅Π½Ρ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΡ 80/443 Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ / Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΠ΅ΠΊΠ° TTN. ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ (Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ΅Π½), ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ .
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΠ»Π°Π½ A) ΠΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ / ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ acme / letsencrypt Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΡΠ°Ρ
?
ΠΠ»Π°Π½ Π) ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΡΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π·Π΄Π΅ΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Ρ
ΠΎΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ IP) Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² HTTP-01 ΠΈ TLS-ALPN-01 ACME ΡΡΠ΅Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ° 80/443. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π·Π°Π΄Π°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ACME Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π΄Π°ΡΠΈ DNS-01 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ certbot (ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π½Π°ΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ) ΠΈΠ»ΠΈ Ρ ΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π½Π°ΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ).
ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ The Things Stack Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Β«ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡΒ»: https://thethingsstack.io/v3.3.2/guides/getting-started/certificates/#custom -certificates ΠΈ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ :
TTN_LW_TLS_SOURCE=file
TTN_LW_TLS_CERTIFICATE=/path/to/cert-chain.pem
TTN_LW_TLS_CERTIFICATE=/path/to/key.pem
Π― ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ https://github.com/TheThingsNetwork/lorawan-stack/issues/1760 Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ΅ΠΊ Π²Π΅ΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π·Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΌ TLS.
Π― ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ https://github.com/TheThingsNetwork/lorawan-stack/issues/1761 Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ·Π²Π½Π΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π² ΡΡΠ΅ΠΊΠ΅ Π²Π΅ΡΠ΅ΠΉ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ The Things Stack Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ TLS Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠΊΡΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌ Π·Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ TLS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ HTTP, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ gRPC, MQTT ΠΈ Ρ. Π.). Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»Π΅ΠΉ TLS ΡΡΠ΅ΠΊΠ° Π²Π΅ΡΠ΅ΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠΊΡΠΈ.
Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ Π»ΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠΆΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ apache / nginx / haproxy / envoy / etc.