ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° (Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π°).
- ΠΠ°ΠΉΡΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° (ΡΠ°ΠΉΡ Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΡΠΏΠΈΡΡ SSL).
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ CSR.
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ.
- ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ.
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π² Π½ΡΠΆΠ½ΡΡ ΡΠΎΡΠΌΡ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· pem Π² PKCS #12.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π° Π²Π΅Π± ΡΠ΅ΡΠ²Π΅Ρ.
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΠΏΠΎΠ»Π½Π΅ Π³ΠΎΠ΄ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π΄Π΅ΡΡΡΠΎΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π Π΅ΡΠ»ΠΈ ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, ΠΈ Ρ Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΠΎ ΡΡΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ? ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ dev β staging β production. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΠΈΡ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². Π ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ°Π½Π΅Π΅ ΠΎΠ³ΠΎΠ²ΠΎΡΡΡΡ: ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ β .net, Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ IIS ΠΈ ΠΏΡΠΎΡΠΈΠ΅ Π²ΠΈΠ½Π΄ΠΎΠ²ΡΠ΅ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ, ACME ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΎΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ windows.
ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ ΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Π Π² Π»ΠΈΡΠ΅ Π°Π²ΡΠΎΡΠ°. URL (Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°): company.tld
ΠΡΠΎΠ΅ΠΊΡ X β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΠΏΡΠΈΡΠ΅Π» ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ. Π£ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ: dev, test, staging ΠΈ production. Dev ΠΈ test Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅, staging ΠΈ production Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ.
Π’ΠΎ-Π΅ΡΡΡ, ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ:
Dev
Test
Staging
Production
projectX.dev.company.tld
projectX.test.company.tld
staging.projectX.tld
projectX.tld
module1.projectX.dev.company.tld
module1.projectX.test.company.tld
module1.staging.projectX.tld
module1.projectX.tld
module2.projectX.dev.company.tld
module2.projectX.test.company.tld
module2.staging.projectX.tld
module2.projectX.tld
…
…
…
…
moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
moduleN.staging.projectX.tld
moduleN.projectX.tld
ΠΠ»Ρ production ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΠΏΠ»Π΅Π½Π½ΡΠΉ wildcard ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ. ΠΠΎ ΠΎΠ½ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ *.projectX.tld β ΡΠΎ Π΄Π»Ρ staging.projectX.tld ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΠ΄Π΅Ρ, Π° Π²ΠΎΡ Π΄Π»Ρ module1.staging.projectX.tld ΡΠΆΠ΅ Π½Π΅Ρ. Π ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ.
Π ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π ΠΏΡΠΎΠ΅ΠΊΡ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ ΠΎΠ΄ΠΈΠ½.
ΠΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΈΡΠΈΠ½Ρ Π·Π°Π½ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
- ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ
Google ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² . Π‘ΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈ. - ΠΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΡΡΠΊΠ° ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ SSL Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π½ΡΠΆΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² ΡΠ΅Π»ΠΎΠΌ.
- Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ DNS ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠ΅ ΠΆΠ΅, Π±ΠΎΠ»ΡΡΠ΅ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ CNAME Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΠ°/ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΡΠ΅ΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΡΠ΅ΡΡΡΡ.
- ΠΡ, ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π·Π° βΠ»ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΠΌ Π½Π΅ ΠΈΠΌΠ΅ΡΡβ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
ΠΡΠ±ΠΎΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° SSL ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ
ΠΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ
SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈΡΡ cloudflare ΠΈ letsencrypt. DNS Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ (ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²) ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° cloudflare, Π½ΠΎ Ρ Π½Π΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ, Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ letsencrypt.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ wildcard SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ. ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ DNS Π·Π°ΠΏΠΈΡΠΈ (TXT ΠΈΠ»ΠΈ CNAME), Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠΈ Π²ΡΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. Π Linux Π΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° β
Π Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠΎΠ·Π΄Π°Π½Π°, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°:
ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ²ΠΎΠ΄, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ° wildcard ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°:
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DNS Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π²ΡΡΡΠ½ΡΡ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ)
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DNS Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ acme-dns ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΡΡΡ . - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DNS Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° (Π°Π½Π°Π»ΠΎΠ³ ΠΏΠ»Π°Π³ΠΈΠ½Π° cloudflare Π΄Π»Ρ certbot).
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠ΅ΡΠΈΠΉ ΠΏΡΠ½ΠΊΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ DNS ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»? Π Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ. Π ΠΎΠ±ΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ β ΡΡΠΎ CNAME Π·Π°ΠΏΠΈΡΠΈ, ΡΠΆ ΠΈΡ ΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ 2, ΠΈ ΠΈΠ΄Π΅ΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ACME-DNS ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ACME-DNS ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Ρ ΡΠΎΠ·Π΄Π°Π» Π΄ΠΎΠΌΠ΅Π½ 2nd.pp.ua, ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ.
acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΡΡΡ Ρ
ΠΎΡΡ acmens.2nd.pp.ua
.
$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data
Π Π²ΠΎΡ acme.2nd.pp.ua
ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ DNS ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΠ°ΠΏΠΈΡΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊΡ ACME-DNS ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΈΡΡ ΠΎΠ½ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π½Π° ubuntu server Π²
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ:
$ mkdir config
$ mkdir data
$ touch config/config.cfg
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ vim Π²Π°ΡΠΈΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΈ Π²ΡΡΠ°Π²ΠΈΠΌ Π² config.cfg ΠΎΠ±ΡΠ°Π·Π΅Ρ
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΠΈΠΈ general ΠΈ api:
[general]
listen = "0.0.0.0:53"
protocol = "both"
domain = "acme.2nd.pp.ua"
nsname = "acmens.2nd.pp.ua"
nsadmin = "admin.2nd.pp.ua"
records =
"acme.2nd.pp.ua. A 35.237.128.147",
"acme.2nd.pp.ua. NS acmens.2nd.pp.ua.", ]
...
[api]
...
tls = "letsencrypt"
β¦
Π’Π°ΠΊΠΆΠ΅, ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ docker-compose ΡΠ°ΠΉΠ» Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°:
version: '3.7'
services:
acmedns:
image: joohoi/acme-dns:latest
ports:
- "443:443"
- "53:53"
- "53:53/udp"
- "80:80"
volumes:
- ./config:/etc/acme-dns:ro
- ./data:/var/lib/acme-dns
ΠΠΎΡΠΎΠ²ΠΎ. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ.
$ docker-compose up -d
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ°ΡΡ ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΡΡΡ Ρ
ΠΎΡΡ acme.2nd.pp.ua
, ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ 404 Π½Π° https://acme.2nd.pp.ua
$ ping acme.2nd.pp.ua
PING acme.2nd.pp.ua (35.237.128.147) 56(84) bytes of data.
$ curl https://acme.2nd.pp.ua
404 page not found
ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ β docker logs -f <container_name>
Π² ΠΏΠΎΠΌΠΎΡΡ, Π±Π»Π°Π³ΠΎ, Π»ΠΎΠ³ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅.
ΠΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ powershell ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ winacme. ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ Π²ΡΠ±ΠΎΡΡ:
- M: Create new certificate (full options)
- 2: Manual input
- 2: [dns-01] Create verification records with acme-dns (
https://github.com/joohoi/acme-dns ) - ΠΠ° Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ACME-DNS ΡΠ΅ΡΠ²Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΎΡΠ²Π΅Ρ URL ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° (https). URL of the acme-dns server:
https://acme.2nd.pp.ua
Π ΠΎΡΠ²Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΡΠ΄Π°Π΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ DNS ΡΠ΅ΡΠ²Π΅Ρ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΅Π΄ΠΈΠ½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ):
[INFO] Creating new acme-dns registration for domain 1nd.pp.ua
Domain: 1nd.pp.ua
Record: _acme-challenge.1nd.pp.ua
Type: CNAME
Content: c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
Note: Some DNS control panels add the final dot automatically.
Only one is required.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΈ ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π»Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ:
$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ ΡΡΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΡΠΆΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² winacme, ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°:
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ certbot Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΎ
ΠΠ° ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅, ΡΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com