Letsencrypt ubuntu nginx: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π² Debian ΠΈ Ubuntu / Π₯Π°Π±Ρ
Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π² Debian ΠΈ Ubuntu / Π₯Π°Π±Ρ
ΠΡΠ»ΠΈ Π²Π΄ΡΡΠ³ Π²ΡΡ ΡΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΠΌΠΈΠΌΠΎ Π²Π°Ρ, Let’s Encrypt β ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ISRG, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ EFF ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, Π²Π·ΡΠ²ΡΠ΅ΠΉ Π½Π° ΡΠ΅Π±Ρ ΠΌΠΈΡΡΠΈΡ Π΄Π°ΡΡ Π»ΡΠ΄ΡΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ SSL/TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΎΡ Let’s Encrypt ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΎΡ Let’s Encrypt Π΅ΡΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅Π΅ Ρ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Π½ΡΡΠΎΠ², Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ: Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΡ Let’s Encrypt, ΡΠΎ, ΠΏΡΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°Π²Π½ΡΡ , ΡΡΠΎ Π½Π°Π²ΡΠ΅Π³Π΄Π°. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π· Π² Π³ΠΎΠ΄-Π΄Π²Π° Π²ΡΡΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π³Π΄Π΅-ΡΠΎ Π΅ΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ», Π½Π°ΡΡΡΠΎΠΈΠ» ΠΈ Π·Π°Π±ΡΠ»!
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΡΠ°Π·Ρ Π·Π°Ρ ΠΎΡΠ΅Ρ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ: ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΠΊ, Π²Π΅Π΄Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π²ΡΠ΄Π°ΡΡΡΡ ΡΠΎ ΡΡΠΎΠΊΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°? ΠΡΡ Π΄Π΅Π»ΠΎ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π² ΡΡΠ°ΡΡΠ΅ ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ ΡΠ΅ΠΌ ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Let’s Encrypt.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ° ΡΡΠ°ΡΡΡ
ΠΠ° ΡΠ°ΠΉΡΠ΅ EFF Π΅ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Certbot, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΊΠΎΡΠ΅ΠΉ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΡΠ΅Ρ , ΠΊΡΠΎ Π·Π°Ρ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎ SSH Π»ΠΈΡΡ ΠΏΠΎ ΠΎΡΡΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π²ΡΡ Π΅Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΡΡ ΠΈ Π½Π°ΠΉΠ΄Π΅ΡΡ Π²ΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡβ¦ Π ΡΠΎΠΌΡ ΠΆΠ΅, Π² Π½Π΅ΠΉ Π½Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΡΠΆΠ½Π° ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΡΠΈΠ²ΡΡΠ΅Π½ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½ΠΎ Ρ ΠΎΡΠ΅Ρ Π²ΠΎ Π²ΡΡΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½ΠΈΡ ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ· ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅…
- ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Certbot Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
- Π§ΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡ nginx ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ nginx Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
- ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
- ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΡ Let’s Encrypt Π² nginx.
- ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ.
Caveat emptor
ΠΡΡ Π·Π½Π°Π΅ΡΠ΅ ΠΏΡΠΎ SNI? Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ.
Π ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ Π½ΠΈΠΆΠ΅ Ρ ΠΈΡΡ ΠΎΠΆΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΡΡΠΎ Π²Π°ΡΠΈ ΡΠ°ΠΉΡΡ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SNI. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TLS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΡΠ° Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ SNI Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ°ΠΉΡΠΎΠ² Π·Π° HTTPS Π½Π° ΠΎΠ΄Π½ΠΎΠΌ IP. ΠΠΎ Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ β ΠΈΠ½Π°ΡΠ΅ Π±Ρ Π·Π°ΡΠ΅ΠΌ Ρ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΈΡΠ°Π»?
ΠΡΡΡ ΡΡΠ΄ ΡΡΠ°ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ SNI. Π ΠΈΡ ΡΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠ΄ΡΡ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ IE Π² ΡΠΆΠ΅ Π·Π°Π±ΡΠΎΡΠ΅Π½Π½ΠΎΠΌ Windows XP, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ Π² Android 2.3 ΠΈ 2.2 ΠΈΠ· 2010 Π³ΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠ° Java Π²Π΅ΡΡΠΈΠΈ 1.6 ΠΈ Python Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.7.9.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡ-ΡΠ°ΠΊΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠ°ΠΉΡ ΠΎΡΠΊΡΡΠ²Π°Π»ΡΡ Π² IE Π² Windows XP, ΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΡΠΊΠ°Π·ΠΎΠΌ ΠΎΡ SNI ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ. ΠΡΠΆΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΡΠΈΡΡΡ, ΡΠΆΠ΅ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡ ΠΎΡ forward secrecy ΠΈ ΡΠΈΡΠΊΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΈΠ·ΠΊΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΠΎΡ SSL Labs. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΠΎΡΡ Π±Ρ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ IE ΠΏΠΎΠ΄ XP ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ β Ρ Π½ΠΈΡ ΡΠΆΠ΅ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°!
ΠΡΠ΅ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ ΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° SNI Π²Π°Ρ ΠΌΠΎΠ³Π»Π° Π±Ρ ΡΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ Π±ΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° Bing, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠ°ΠΉΡΠΎΠ² Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ ΠΎΡ Cloudflare, ΡΡΠΎ Π±Π΅Π· SNI Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ, Π±ΠΎΡ Bing (ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ), ΠΈ Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΎΠ², ΠΏΡΠΈΡΠ»ΠΈ Π² ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡΡ. Π‘Π΅ΠΉΡΠ°Ρ Π·Π° ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ Ρ Googlebot ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π°.
ΠΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π²ΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄Π°Π²Π½ΠΎ Π΅ΡΡΡ API, ΡΠΎ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π½Ρ ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ Π²Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Java ΠΈΠ»ΠΈ Python. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΊΠΈΡ Π½Π΅Ρ, ΡΠΎ Π½Π΅ ΠΎ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΅ΡΡΡ β ΠΌΠΎΠΈ ΡΠΎΠ±ΠΎΠ»Π΅Π·Π½ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠ΅ΠΌΡ Π»ΡΡΡΠ΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° SNI?
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΡΠ°ΠΊΡΡ ΠΎ Π²ΡΠ΄Π°Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°Ρ . ΠΠ»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π±ΡΠ» Π²ΡΠ΄Π°Π½ ΠΏΠ΅ΡΠ²ΡΠΌ. Π ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ. Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅β¦ ΠΠΈ ΠΎ ΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΌ ΡΠΎ SNI Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΡΠΌΠ°ΡΡ.
- Π‘Π΅ΠΊΡΠ΅ΡΡ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΡΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅ Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΠ΅Π΄ΠΈΠ°:
true | openssl s_client -showcerts -connect habrahabr.ru:443 2>&1 |
openssl x509 -text | grep -o 'DNS:[^,]*' | cut -f2 -d:
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π’Π:
habrastorage.org
api.geektimes.ru
api.habrahabr.ru
geektimes.ru
habrahabr.ru
id.tmtm.ru
lab.geektimes.ru
m.geektimes.ru
m.habrahabr.ru
special.geektimes.ru
special.habrahabr.ru
www.geektimes.ru
www.habrahabr.ru
ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ½. ΠΡ ΡΡΠΎΠ³ΠΎ Ρ ΠΎΡΠΈΡΠ΅?
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Certbot
ΠΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ ΠΈΠ· Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° Certbot ΡΠΆΠ΅ Π΅ΡΡΡ Π² Debian stable ΠΈ Ubuntu Π±Π΅Π· ΠΎΠ±ΠΈΠ½ΡΠΊΠΎΠ² ΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠΊ, ΡΠΎ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ:
apt-get install certbot
ΠΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ aptitude
ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π² Jessie
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΠ΅ Π² Ρ ΠΎΠ΄Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π½Π° ΠΊΠΎΠ½Π΅Ρ 2016 Π³ΠΎΠ΄Π° Debian stable «jessie», ΡΠΎ Π²ΡΡ Π»ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Debian Backports, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΡΠΎΡΠΊΡ Π²
/etc/apt/sources.list
:deb http://ftp.debian.org/debian/ jessie-backports main contrib non-free
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°:
apt-get update apt-get install certbot -t jessie-backports
(Π Π°Π·Π΄Π΅Π» Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ stretch Π½Π΅ ΡΡΠ°Π» stable.)
Ubuntu Π²Π΅ΡΡΠΈΠΉ Π½ΠΈΠΆΠ΅ 16.10 (yakkety)
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install --upgrade letsencrypt
ΠΠ°Π»ΡΡΠ΅ Π²Π΅Π·Π΄Π΅ Π²ΠΌΠ΅ΡΡΠΎ certbot
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ letsencrypt
.
ΠΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π΅ΡΡΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Certbot. ΠΡΠ»ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π±Π΅Π· ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ…
wget -O /usr/local/bin/certbot-auto https://dl.eff.org/certbot-auto
chmod +x /usr/local/bin/certbot-auto
ln -s /usr/local/bin/certbot-auto /usr/local/bin/certbot
ΠΠ΅Π·Π΄Π΅ Π½ΠΈΠΆΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ certbot
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ certbot-auto
.
Certbot ΠΈ webroot
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ webroot Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ nginx. ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΡΠΉ certbot
Π±ΡΠ΄Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ· ΡΠ΅ΡΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ACME.
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π΄Π»ΠΈΠ½Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΠΎΠΏΡΠΈΠΉ, Π° Π΅ΡΠ΅ Π»ΡΡΡΠ΅ β Π½Π΅ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΎ Π½ΠΈΡ
, Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ certbot
ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π½Π°ΠΉΡΠΈ Π² /etc/letsencrypt/cli.ini
:
authenticator = webroot
webroot-path = /var/www/html
post-hook = service nginx reload
text = True
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½ΡΠΆΠ½Π° ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡ Π½Π°Ρ ΠΎΡ ΠΏΡΠ΅Π»Π΅ΡΡΠ΅ΠΉ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎΡΡΠ΅ΠΉ ncurses, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π΄Π΅ΡΡ, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΈ Ρ ΡΠ΅Π±Ρ.
Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΌΡΠ³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ nginx (Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΡΠ²Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ) ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΡΠΎΡ ΠΆΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π²ΡΠΎΠ΄Π΅ Postfix, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΡΠ»ΠΈ ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
letsencrypt: error: Unexpected line 14 in /etc/letsencrypt/cli.ini: post-hook = service nginx reload; service postfix reload
Π’ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ python-configargparse
. ΠΡΠΈΠ±ΠΊΠ° Π±ΡΠ»Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° Π² 0.11.0.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ Certbot
ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΡΡΠΎ certbot
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π² Π½Π° Π΄ΠΎΠΌΠ΅Π½ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
Π½ΠΈΠΆΠ΅ ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ. ΠΡΠΎΠ΄Π΅ ΡΠ°ΠΊΠΈΡ
:
/var/www/html/.well-known/acme-challenge/example.html
ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· ΡΠ΅ΡΠΈ Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΏΠΎ HTTP:
http://www.example.com/.well-known/acme-challenge/example.html
ΠΠ»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ»:
mkdir -p /var/www/html/.well-known/acme-challenge
echo Success > /var/www/html/.well-known/acme-challenge/example.html
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² Let’s Encrypt
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·:
certbot register --email [email protected]
ΠΠ΄Π΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ nginx ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎ Π²ΡΠ΅Ρ
Π±Π»ΠΎΠΊΠ°Ρ
server
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ Π΄ΠΎ Π΄ΡΡΠ³ΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² location
:
location /.well-known {
root /var/www/html;
}
ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π²ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΡΠ°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ ΡΠ²Π½ΠΎ β ΡΡΠΎ ΠΌΠΎΠ²Π΅ΡΠΎΠ½, ΠΏΠΎΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» /etc/nginx/acme
Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠ° Π²ΡΡΠ΅.
# cat /etc/nginx/acme
location /.well-known {
root /var/www/html;
}
ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π² Π±Π»ΠΎΠΊΠ΅ server
ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ΅ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ location
ΡΠΊΠ°ΠΆΠ΅ΠΌ:
include acme;
Π₯ΠΎΡΡΡ-ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π³ΠΎΠ»ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π½Π° www) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. ACME ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ·Π°Π½ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠΌ nginx ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΡΠΎ Π½Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π²ΠΈΠ΄Π΅Π½:
# service nginx reload
# curl -L http://www.example.com/.well-known/acme-challenge/example.html
Success
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π»ΡΡΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» β certbot
Π»ΡΠ±ΠΈΡ ΡΠ΄Π°Π»ΡΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π²ΡΡ Π»ΠΈΡΠ½Π΅Π΅, Π° ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΌΠ΅ΡΠ°ΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ (Unable to clean up challenge directory).
rm /var/www/html/.well-known/acme-challenge/example.html
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π²ΡΡ Π³ΠΎΡΠΎΠ²ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
Π ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ 301 ΠΈ 302
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ACME ΡΠ΅ΡΠ²Π΅Ρ Boulder ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ 301 ΠΈ 302. Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π³Π΄Π΅, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ. ΠΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ, Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP ΠΈΠ»ΠΈ HTTPS. Π‘Π°ΠΌΠΈ Let’s Encrypt ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π² Π½Π° Π΄ΠΎΠΌΠ΅Π½Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ curl
Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄Π΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΎ ΠΈ Boulder ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ²ΠΈΠ΄ΠΈΡ. ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ IP Π°Π΄ΡΠ΅ΡΠ°ΠΌ.
curl --location --max-redirs 10 http://example.com/.well-known/acme-challenge/example.html
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΡΠ°ΠΉΡΠΎΠ². ΠΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡ Π±Π»ΠΎΠΊ Ρ location
ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
.
$ curl --head --silent --location --max-redirs 10 http://somewhere.example.net/... | grep ^HTTP
HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
HTTP/1.1 200 OK
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP Π½Π° 80 ΠΏΠΎΡΡΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π²ΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ…
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ HTTPS, ΡΠΎ Π²ΡΡ ΡΡ
Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° 80 ΠΏΠΎΡΡΡ, ΡΠΎΡ
ΡΠ°Π½ΡΡΡΠΈΠΉ $request_uri
Π² ΠΎΡΠ²Π΅ΡΠ΅.
ΠΡΡΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΏΡΡΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½Π°Ρ Π±Π»ΠΎΠΊ Ρ location
Π² ΡΠΌΠΎΠ»ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π΄Π»Ρ 80 ΠΏΠΎΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π½Π° HTTPS. Π’ΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ Π²ΡΡ-ΠΏΠΎΠ΄ΡΡΠ΄-Π½Π°-HTTPS ΡΠ΅ΡΠ²Π΅ΡΠ°:
server {
listen server.example.com:80 default_server;
include acme;
location / {
return 301 https://$host$request_uri;
}
}
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ ΡΡΠΎΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² /etc/nginx/conf.d/default.conf
, Π² ΡΡΠΎΡΠΎΠ½Π΅ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΡΠ°ΠΉΡΠΎΠ².
Π‘Π΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ²Π½ΠΎ Π½Π° Π²Π½Π΅ΡΠ½Π΅ΠΌ IP ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Apache Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡ. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ listen
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° Π±Π΅Π· ΡΠ°ΠΉΡΠ°…
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ SMTP ΠΈΠ»ΠΈ IMAP ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠ°ΠΉΡΠΎΠ². ΠΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΎΡ ΡΡΠΎ Π²ΡΡΠ΅, Π»ΠΈΠ±ΠΎ…
server {
server_name smtp.example.com imap.example.com;
listen server.example.com:80;
include acme;
location / {
return 404;
}
}
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ACME ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ, Π²Π²ΠΈΠ΄Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΅ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Apache2…
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Apache2, Π° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²ΡΠ΅ΠΌΠΈ Π»ΡΠ±ΠΈΠΌΡΠΉ nginx Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅Ρ, ΡΠΎβ¦ ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΡΠΊΠΈ Π² /etc/apache2/conf-available/certbot.conf
:
Alias /.well-known/ /var/www/html/.well-known/
<Directory /var/www/html/.well-known/>
Satisfy any
</Directory>
ΠΠ°ΡΠ΅ΠΌ
a2enconf certbot
mkdir -p /var/www/html/.well-known
service apache2 reload
Π ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠ°ΠΊ:
mkdir -p /var/www/html/.well-known/acme-challenge
echo Success > /var/www/html/.well-known/acme-challenge/example.html
curl -L http://localhost/.well-known/acme-challenge/example.html &&
rm /var/www/html/.well-known/acme-challenge/example.html
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ Π²Π°Ρ Π² Apache2 Π½Π΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ°ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² ΡΠ΅ΠΊΡΡΠ° Π½Π΅ Ρ Π²Π°ΡΠΈΡ ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π²ΡΠ΅. ΠΠ΅ ΡΠ΅ΡΡΠ°ΠΉΡΠ΅ β ΡΡΠ°ΡΡΡ ΠΏΡΠΎ nginx.
ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ
Π£ Let’s Encrypt Π΅ΡΡΡ Π»ΠΈΠΌΠΈΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ²:
certbot certonly --dry-run -d example.com -d www.example.com
Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅:
The dry run was successful.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠΆΠ΅ Π² ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ www.
# certbot certonly -d example.com -d www.example.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-04-01. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
Π£ΡΠ°! Π‘ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ΠΎ!
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΠΡΠ»ΠΈ Π²Ρ Π²Π΄ΡΡΠ³ Π·Π°Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ www
, ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ (ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎ 100 Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅), ΡΠΎ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅ΡΠ΅ ΡΠ°Π·, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠΌΡ:
certbot certonly -d example.com -d www.example.com -d shop.example.com
ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ Π±Π΅Π·Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ Π΄ΠΎΠΌΠ΅Π½ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ΄ΠΎΠ±ΡΡΡΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡ:
certbot certonly --expand -d example.com -d www.example.com -d shop.example.com
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
Π£Π±Π΅Π΄ΠΈΠΌΡΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ β ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½:
# openssl x509 -text -in /etc/letsencrypt/live/example.com/cert.pem
Certificate:
Signature Algorithm: ...
Validity
Not Before: Jan 3 06:00:00 2017 GMT
Not After : Apr 3 06:00:00 2017 GMT
X509v3 extensions:
...
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com
ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ:
cat /etc/letsencrypt/live/*/cert.pem | openssl x509 -text |
grep -o 'DNS:[^,]*' | cut -f2 -d:
ΠΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
Certbot Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π° Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ
ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ°ΠΌΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌ Ρ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° (Ρ.Π΅. CN
).
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ Π·Π° ΡΠ°ΠΉΠ»Ρ Ρ Π½Π°Ρ Π΅ΡΡΡ:
# find /etc/letsencrypt/live/ -type l
/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/chain.pem
/etc/letsencrypt/live/example.com/privkey.pem
/etc/letsencrypt/live/example.com/cert.pem
Π‘ ΡΡΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ SSL Π΄Π»Ρ nginx:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, cert.pem
Π½ΠΈΠ³Π΄Π΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ»Ρ nginx ΠΎΠ½ Π½Π΅ Π½ΡΠΆΠ΅Π½.
ΠΠΎΠ»Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³Π°:
server {
server_name www.example.com;
listen www.example.com:443 ssl; # default_server;
# Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ default_server Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π±Π΅Π· SNI
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 127.0.0.1 8.8.8.8;
# ΠΈΡΠΊΠ»ΡΡΠΈΠΌ Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π° http-Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΡΠ°
add_header Strict-Transport-Security "max-age=31536000";
# ΡΠ²Π½ΠΎ "ΡΠ»ΠΎΠΌΠ°Π΅ΠΌ" Π²ΡΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Ρ http://
add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests";
# Π΄Π°Π»Π΅Π΅ Π²ΡΡ ΡΡΠΎ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅
#location / {
# proxy_pass ...;
#}
}
ΠΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π³ΠΎΠ»ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π±Π΅Π· www:
server {
server_name example.com;
listen example.com:443 ssl;
access_log off;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 127.0.0.1 8.8.8.8;
add_header Strict-Transport-Security "max-age=31536000";
expires max;
return 301 https://www.example.com$request_uri;
}
ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ DNS Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎ 127.0.0.1
Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ resolver
Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° IP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ DNS ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ (ssl_dhparam
, ssl_session_cache
) Π»ΡΡΡΠ΅ Π΄Π΅ΡΠΆΠ°ΡΡ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
Perfect Forward Secrecy
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅ΡΠ΅ ΡΡΠΎ Certbot ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΠΊΡΡΡΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ, Π° Π·Π½Π°ΡΠΈΡ, Π² ΡΠ΅ΠΎΡΠΈΠΈ, ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π·Π»ΠΎΠ΄Π΅ΠΈ ΡΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΡΡΠ°ΡΠΈΠΊ, ΡΠΎ ΡΠΏΠ΅ΡΡ Π²Π°Ρ ΡΡΠΏΠΎΠΊΠΎΠΈΡΡ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π²Π°ΡΠΈΠΌ ΡΠ°ΠΉΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΡΡ ΠΈΠ· ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² DHE ΠΈ ECDHE, ΡΠΎ ΡΡΠ΅ΡΠΊΠ° ΠΊΠ»ΡΡΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΠΊ. Π ΡΡΠΈΡ ΡΠΈΡΡΠ°Ρ ΠΊΠ»ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ, ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΈ ΡΠΈΡΡΡ.
ΠΡΠ»ΠΈ Π΄Π»Ρ ECDHE Π½Π° ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΠΈΠ²ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠΎ Π΄Π»Ρ DHE ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ DHE Π²ΠΎΠΎΠ±ΡΠ΅.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±Π΅Π· DHE Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±Π΅Π· DHE Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ, ΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
openssl dhparam -out /etc/ssl/private/dhparam.pem 2048
ΠΠΎΡΠΎΠΌ ΠΏΡΠΎΠΏΠΈΡΠ΅ΠΌ Π² /etc/nginx/conf.d/ssl_dhparam.conf
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ:
ssl_dhparam /etc/ssl/private/dhparam.pem;
ΠΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π²ΡΠ΄Π°ΡΡΡΡ Π½Π° ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°. ΠΠ΅ Π½Π° ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, Π½Π΅ Π½Π° Π³ΠΎΠ΄, Π° Π»ΠΈΡΡ Π½Π° ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΠΎΠΏΡΠΎΡΡ. ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π²ΡΡ ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°? ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎ ΠΈΡΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π²Π΅ΠΊΠΎΠ²? ΠΠΎΠΆΠ΅Ρ ΡΡΠΎΠΈΡ Π²ΡΡ-ΡΠ°ΠΊΠΈ Π²Π»ΠΎΠΆΠΈΡΡΡΡ Π² ΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠΎΠ±Ρ Π·Π°Π±ΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠ΅ΠΌ ΠΈ Π½Π΅ Π²ΠΎΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΏΠ°ΡΡ Π»Π΅Ρ?
ΠΠΎ Π½Π΅Ρ, Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠ΅ ΠΈΡΠΊΠ°ΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°! ΠΠ°ΠΊ ΠΈ Π±ΡΠ»ΠΎ ΠΎΠ±Π΅ΡΠ°Π½ΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ, Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Debian, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ certbot
Π² /etc/cron.d/certbot
ΠΊΠ»ΡΡ --allow-subset-of-names
:
# ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° Π² /etc/cron.d/certbot
# Π±ΡΠ»ΠΎ certbot -q renew, Π° Π½Π°Π΄ΠΎ
certbot -q renew --allow-subset-of-names
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Debian ΠΈ systemd, ΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ Debian ΠΈΠ»ΠΈ Π½Π΅Ρ ΡΠ°ΠΉΠ»Π°, ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² crontab
ΠΎΡ root
ΠΎΠ΄Π½Ρ Π»ΠΈΡΡ ΡΡΡΠΎΡΠΊΡ (sudo crontab -e
):
42 */12 * * * certbot renew --quiet --allow-subset-of-names
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ Let’s Encrypt ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π²Π° ΡΠ°Π·Π° Π² Π΄Π΅Π½Ρ. ΠΠ΅Π»Π°ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΌΠΈΠ½ΡΡΡ ΡΠΎΠ³ΠΎ ΡΠ°ΡΠ°, Π° Π·Π½Π°ΡΠΈΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ 42
Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ 0
ΠΈ 59
. ΠΠΈΠ±ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² /etc/cron.d/certbot
.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠ»ΡΡ --allow-subset-of-names
Π½ΡΠΆΠ΅Π½ ΡΡΠΎΠ±Ρ Certbot ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΠΉΡΡ www.example.com ΠΈ shop.example.com, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ Π²Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»ΠΈ shop.example.com Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΎ Certbot ΡΠΏΠ°Π΄Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ shop.example.com, Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ² Π΄Π»Ρ Π²Π°Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈΡΡΠ΅ΡΠ΅Ρ ΠΈ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠΉΠ΄Π΅Ρ Π² ΠΎΡΡΠ»Π°ΠΉΠ½. Π‘ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π²Ρ Π²ΡΡ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Ρ ΠΎΡΡ Π±Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΎΡΡΠ°Π²ΠΈΠ² Π²Π°ΡΠΈ ΡΠ°ΠΉΡΡ Π² ΡΠ΅ΡΠΈ.
ΠΠΎΡ ΠΈ Π²ΡΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΏΠΎ Π΄ΡΡ
Ρ tee
ΠΈ sed
, ΡΠΎ Π΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ²ΡΠ·ΠΊΠΈ Let’s Encrypt ΠΈ nginx, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ hostname
. Π’ΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΡΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΡΡΠ°Π²Π»ΡΠΉ.
ΠΠ°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ? ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π² Π»ΠΈΡΠΊΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° SSL Let’s Encrypt Π² Nginx Π½Π° Ubuntu Β· Dmitriy Azarov
Π€Π°ΠΉΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°
Π‘ΠΎΠ·Π΄Π°ΠΌΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ letencrypt Π΄ΠΎΠΌΠ΅Π½Π°.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» /etc/nginx/snippets/letsencrypt.conf
ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /var/www/letsencrypt;
}
Π ΡΠ°ΠΉΠ» ΠΎΠ±ΡΠΈΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π΄Π»Ρ ssl /etc/nginx/snippets/ssl.conf
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ letsencrypt
sudo mkdir -p /var/www/letsencrypt/.well-known/acme-challenge
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ Π½Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ http
. Π ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ (ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΌ) ΠΈΠΌΠ΅Π΅ΠΌ:
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name oxozle.com;
include /etc/nginx/snippets/letsencrypt.conf;
}
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΉΡ
ln -s /etc/nginx/sites-available/oxozle.com /etc/nginx/sites-enabled/oxozle.com
Π ΡΠ΅ΡΡΠ°ΡΡΡΠ΅ΠΌ nginx
sudo systemctl reload nginx
Certbot
Π£ΡΠΈΠ»ΠΈΡΠ°, Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot
ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· certbot
certbot certonly --webroot --agree-tos --no-eff-email --email [email protected] -w /var/www/letsencrypt -d oxozle.com
HTTPS
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° http
ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΌ https
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name oxozle.com;
include /etc/nginx/snippets/letsencrypt.conf;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2 ipv6only=on;
server_name oxozle.com;
ssl_certificate /etc/letsencrypt/live/oxozle.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/oxozle.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/oxozle.com/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;
}
Π ΡΠ΅ΡΡΠ°ΡΡΡΠ΅ΠΌ nginx
sudo systemctl reload nginx
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ 30 Π΄Π½Π΅ΠΉ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π΅Π³ΠΎ ΡΡΠ΅Π· cron
.
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ:
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ~/letsencrypt.sh
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
#!/bin/bash
systemctl reload nginx
ΠΠ΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ
chmod +x ~/letsencrypt.sh
ΠΡ
ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ cron
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ
20 3 * * * certbot renew --noninteractive --renew-hook ~/letsencrypt.sh
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ Nginx Ρ Letβs Encrypt ΠΏΠΎΠ΄ Ubuntu 16.04 β Vscale Community
ΠΠ΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ ΡΠ΅Π½ΡΡ Let’s Encrypt, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΏΠΎΠ΄ ΡΠ³ΠΈΠ΄ΠΎΠΉΒ Linux FoundationΒ — Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ (Π½Π΅ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ!) SSL/TLS-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠΎΠΊΠΎΠΌ Π½Π° ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Β letsencrypt. ΠΠ½Β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΆΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎΠ± Nginx.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- Ubuntu Server 16.04;
- ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ sudo-ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ;
- ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΠΎΠΌΠ΅Π½;Β
- DNS-Π·Π°ΠΏΠΈΡΡ A Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° IPv4-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² VscaleΒ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π½ΠΈΡ; Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ). ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΈΠ»Π΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (Π²ΡΠΎΠ΄Π΅ www.example.site).
Π¨Π°Π³ 1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΠ
ΠΠ±Π½ΠΎΠ²ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ letsencrypt:
$ sudo apt-get update
$ sudo apt-get install letsencrypt -y
ΠΡ ΠΏΠΎΠΉΠ΄ΡΠΌ ΠΏΠΎ ΠΏΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Web-root ΠΏΠ»Π°Π³ΠΈΠ½Π° letsencrypt, ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Β /.well-knownΒ (ΠΏΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ Π²Π΅Π±-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΠ Let’s Encrypt.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π΅ΡΡ Π½Π΅ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Nginx — ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:
$ sudo add-apt-repository ppa:nginx/development
$ sudo apt-get update
$ sudo apt-get install nginx -y
Π¨Π°Π³ 2. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π²ΡΠΏΡΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Nginx:
$ sudo nano /etc/nginx/sites-available/default
Π²Π½ΡΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (server { …) ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π±Π»ΠΎΠΊ location:
location ~ /.well-known {
allow all;
}
Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Ctrl+X, y, Enter.
ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» NginxΒ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ:
$ sudo nginx -t
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅Β Nginx:
$ sudo service nginx reload
Π¨Π°Π³ 3.Β ΠΡΠΏΡΡΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΒ letsencrypt Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΠ°ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (/var/www/html — ΠΊΠΎΡΠ΅Π½Ρ Π²Π°ΡΠ΅ΠΉ Π²Π΅Π±-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), example.site — Π΄ΠΎΠΌΠ΅Π½):
$ sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d example.site -d www.example.site
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ e-mail (Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Π²Π΄ΡΡΠ³ Π½Π΅ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅) ΠΈ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ 4 PEM-ΡΠ°ΠΉΠ»Π°, ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ — ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΡ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (example.site — Π²Π°Ρ Π΄ΠΎΠΌΠ΅Π½):
$ sudo ls -l /etc/letsencrypt/live/example.site
Π¨Π°Π³ 4. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²Β ΠΠΈΡΡΠΈ-Π₯Π΅Π»Π»ΠΌΠ°Π½Π°
ΠΠ»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ — cΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΠΈΡΡΠΈ-Π₯Π΅Π»Π»ΠΌΠ°Π½Π° ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² ΡΠ°ΠΉΠ» (ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΉΠΌΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ):
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Π¨Π°Π³ 5. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Nginx:
ΠΠΏΡΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΒ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Nginx:
$ sudo nano /etc/nginx/sites-available/default
ΠΡΠΈΠ²ΠΎΠΆΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
server {
listen 80;
listen [::]:80;server_name example.site;
# ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° HTTPS
return 301 https://$server_name$request_uri;server_tokens off;
}server {
listen 443 ssl http2;
listen [::]:443 ssl http2;server_name example.site;
ssl_certificate /etc/letsencrypt/live/example.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.site/privkey.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Modern
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
# HSTS - ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ HTTPS
add_header Strict-Transport-Security "max-age=15768000";
Β # Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ OCSP-ΠΎΡΠ²Π΅ΡΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
ssl_stapling on;
Β # Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΠ²Π΅ΡΠΎΠ² OCSP
ssl_stapling_verify on;root /var/www/html;
index index.html index.htm index.nginx-debian.html;
# ΠΠ°ΠΏΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π°ΡΠΈ Π²Π΅ΡΡΠΈΠΈ nginx Π² HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ
server_tokens off;location / {
try_files $uri $uri/ =404;
}
# Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Let's Encrypt
location ~ /.well-known {
allow all;
}
}
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ SSL-Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Nginx:Β
ΠΠΏΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Let’s Encrypt Π½Π° Ubuntu ΠΈ nginx / Π’ΡΠΏΠΊ
Letβs Encrypt β Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ X.509 Π΄Π»Ρ TLS ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ (HTTPS). ΠΡΠΎΡΠ΅ΡΡ Π²ΡΠ΄Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Certbot. Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π²ΡΠ΄Π°ΡΡΡΡ Π½Π° 90 Π΄Π½Π΅ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
Π― Π±Ρ Π½Π°Π·Π²Π°Π» ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ certbot ΡΡΠΏΠ΅ΡΠ΄ΡΡΠΆΠ΅Π»ΡΠ±Π½ΡΠΌ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΡΡΠ½ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
- os: ubuntu 16.04
- web-server: nginx
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Certbot Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ,
ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅:
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
Π£ Certbot Π΅ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ Nginx, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²:
$ sudo certbot --nginx
Π ΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΌΠ°Π³ΠΈΡ: Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΠ½ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, ΠΌΡ ΠΎΡΠ²Π΅ΡΠ°Π΅ΠΌ.
- ΠΠ΄ΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΈΡΠ΅ΠΌ.
- Π‘ΠΎΠ³Π»Π°ΡΠΈΠ΅ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
- Π‘ΠΎΠ³Π»Π°ΡΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Certbot ΠΈ Electronic Frontier Foundation (ΡΡΡΠ΅Π΄ΠΈΡΠ΅Π»Ρ-ΠΏΠ°ΡΡΠ½Π΅Ρ Letβs Encrypt)
- ΠΠ° ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ?
- ΠΡΠΆΠ΅Π½ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Ρ HTTP Π½Π° HTTPS?
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
tyapk@host:~$ sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: y
Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: xxxx.ru
2: www.xxxx.ru
3: xxx.icc.ru
4: tyapk.ru
5: www.tyapk.ru
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for xxxx.ru
Waiting for verification...
Cleaning up challenges
Deployed Certificate to VirtualHost /etc/nginx/sites-enabled/xxxx.conf for set(['www.xxxx.ru', 'xxxx.ru'])
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://xxxx.ru
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=xxxx.ru
-------------------------------------------------------------------------------
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/xxxx.ru/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/xxxx.ru/privkey.pem
Your cert will expire on 2018-03-24. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΠΊΠ΅ΡΡ Certbot ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ cron, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ sudo certbot renew --dry-run
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
tyapk@host:~$ sudo certbot renew --dry-run
[sudo] ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ tyapk:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/xxxx.ru.conf
-------------------------------------------------------------------------------
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for xxxx.ru
Waiting for verification...
Cleaning up challenges
-------------------------------------------------------------------------------
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/xxxx.ru/fullchain.pem
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/xxxx.ru/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
-------------------------------------------------------------------------------
IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
ΠΠ°ΠΊΒ Π·Π°ΡΠΈΡΠΈΡΡ Nginx ΡΒ ΠΏΠΎΠΌΠΎΡΡΡ Let’s Encrypt Π½Π°Β Ubuntu 16.04/18.04
Letβs EncryptΒ β ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ TSL/SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Certbot, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π²ΡΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈΒ Π½Π°ΡΡΡΠΎΠΈΡΡ HTTPS-ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Β Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π³ΠΎΠ².
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ:
ΠΡΠ°ΠΏ 1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Certbot
CertbotΒ β ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»ΡΒ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΒ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄Β Π΅Π³ΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Certbot, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ubuntu, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ.
-
1.ΠΠ»ΡΒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ PPA ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo apt-get install software-properties-common
-
2.ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Certbot ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:
sudo add-apt-repository ppa:certbot/certbot
-
3.ΠΠ°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅:
-
4.Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Certbot Π΄Π»ΡΒ Nginx ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
sudo apt install python-certbot-nginx
ΠΠΎΡΠΎΠ²ΠΎ, Certbot ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
ΠΡΠ°ΠΏ 2. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Nginx Ubuntu
Certbot Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΡΠ΅Ρ Π²Β ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
Nginx Π±Π»ΠΎΠΊ server
, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π°Β Π΄ΠΎΠΌΠ΅Π½, Π΄Π»ΡΒ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΡΠ»ΠΈ Π²ΡΒ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ Nginx ΠΏΠΎΒ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΠ°ΠΊΒ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Linux, Nginx, MySQL, PHP (LEMP) Π²Β Ubuntu 16.04/18.04, ΡΠΎ Π²ΡΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΒ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»ΡΒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. Π€Π°ΠΉΠ»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π²Β ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /var/www/html
, Π°Β Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ Π²Β Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ server_name
ΡΠΊΠ°Π·Π°Π½ Π΄ΠΎΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊΒ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°:
-
1.ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
sudo nano /etc/nginx/sites-available/default
-
2.ΠΒ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # listen 443 ssl default_server; # listen [::]:443 ssl default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name faq-reg.ru www.faq-reg.ru; location / { try_files $uri $uri/ =404; } }
-
3.Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Β Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅
server_name
ΡΠΊΠ°Π·Π°Π½ Π΄ΠΎΠΌΠ΅Π½ ΡΒ ΠΈ Π±Π΅Π·Β www. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Β ΡΠ°ΠΊ, Π²Π½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΒ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ». -
4.ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Nginx ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
sudo systemctl reload nginx
ΠΠΎΡΠΎΠ²ΠΎ, Π²ΡΒ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ Nginx.
ΠΡΠ°ΠΏ 3. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ HTTPS-ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΒ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΠ°ΠΊΒ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Linux, Nginx, MySQL, PHP (LEMP) Π²Β Ubuntu 16.04/18.04 Π½Π°Β Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Β«Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° NginxΒ» Π±ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ firewall. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ HTTPS-ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΡΒ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΡΒ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΒ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅:
ΠΡΠ°ΠΏ 4. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
Certbot ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π°Β ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»ΡΒ NginxΒ β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈΒ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³Π°, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠ»ΡΒ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo certbot --nginx -d faq-reg.ru -d www.faq-reg.ru
ΠΠ»ΡΡ -d
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π°, Π΄Π»ΡΒ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½Π° faq-reg.ru
ΡΠ²ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊΒ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΡΠΈΒ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Certbot ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΠΎΡΠΈΡ Π²Π°Ρ e-mail ΠΈΒ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠ°ΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΠΌΠ΅Π½Π°: DNS-ΡΠ΅ΡΠ²Π΅ΡΡ Π΄ΠΎΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π°Β Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Certbot ΡΠΏΡΠΎΡΠΈΡ, ΠΊΠ°ΠΊΒ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ HTTPS:
- ΠΠ΅Π·Β ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ°Β β Π½Π΅Β Π²Π½ΠΎΡΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Β ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ».
- Π Π΅Π΄ΠΈΡΠ΅ΠΊΡΒ β Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΡ Π΄Π»ΡΒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΒ HTTPS. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»ΡΒ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΡΠΎΠ².
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ (Π²Π²Π΅Π΄ΠΈΡΠ΅ 1 ΠΈΠ»ΠΈΒ 2) ΠΈΒ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter:
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΡΠ» ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΒ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ°ΠΉΠ»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Letβs Encrypt Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ 90 Π΄Π½Π΅ΠΉ. Certbot Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΡΠΈΒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΒ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π°Β e-mail, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΒ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Certbot.
ΠΡΠΈΒ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΏΠΎΒ Π²Π°ΡΠ΅ΠΌΡ Π΄ΠΎΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΒ ΡΠ°ΠΉΡΠΎΠΌ Π·Π°ΡΠΈΡΠ΅Π½ΠΎ:
ΠΠΎΡΠΎΠ²ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ Π·Π°ΡΠΈΡΡΠ½ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ Letβs Encrypt. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±ΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Certbot.
ΠΠΎΠΌΠΎΠ³Π»Π° Π»ΠΈ Π²Π°ΠΌ ΡΡΠ°ΡΡΡ?
2
ΡΠ°Π·Π° ΡΠΆΠ΅
ΠΏΠΎΠΌΠΎΠ³Π»Π°
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Let’s Encrypt Π΄Π»Ρ Nginx Π½Π° Ubuntu 18.04 (Ρ IPv6, HTTP/2 ΠΈ A+ SSL ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠΌ)
ΠΠ°Π»ΠΈΡΠΈΠ΅ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΡΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²Π»ΡΠ΅Ρ. Π‘ΠΊΠΎΡΠ΅Π΅ ΡΠ΄ΠΈΠ²ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ» Π½Π° ΡΠ°ΠΉΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΎ SSL, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΈΡΠ°Π΅ΠΌ ΡΡΠ°ΡΡΡ HTTPS ΠΈ SSL Π΄Π»Ρ SEO. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Π΄Π°Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡΒ Letβs Encrypt Π΄Π»Ρ Nginx Π½Π° Ubuntu 18.04 Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π½ΠΈΡΡΡΠΊΠ°ΠΌΠΈ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ ΠΎΡΡΡ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ first.com ΠΈ second.com Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
mkdir /var/www/first mkdir /var/www/second
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΒ /etc/nginx/sites-available/first.conf Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name first.com www.first.com; root /var/www/first; index index.html; location / { try_files $uri $uri/ =404; } }
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°:
server { listen 80; listen [::]:80; server_name second.com www.second.com; root /var/www/second; index index.html; location / { try_files $uri $uri/ =404; } }
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° default_server ΠΈ ipv6only = on Π² ΡΡΡΠΎΠΊΠ΅ listen.
Π£Π±ΠΈΡΠ°Π΅ΠΌ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ nginx:
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/first.conf /etc/nginx/sites-enabled/first.conf
sudo ln -s /etc/nginx/sites-available/second.conf /etc/nginx/sites-enabled/second.conf
sudo nginx -t #ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ NGINX Π½Π° Π½Π°ΠΎΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
sudo systemctl stop nginx #ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ NGINX
sudo systemctl start nginxΒ #Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ NGINXΒ ΡΒ Π½ΠΎΠ²ΡΠΌΠΈΒ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ
ΠΡΠ»ΠΈ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ°ΡΡΡ Nginx ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
sudo systemctl status nginx
Π ΠΎΡΠ²Π΅Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Ρ ΠΎΡΡΠΎΠ², ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ:
- http://first.com ΠΈ http://www.first.com Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ ΠΏΠ°ΠΏΠΊΠΈ /var/www/first
- http://second.com ΠΈ http://www.second.comΠ·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ ΠΏΠ°ΠΏΠΊΠΈ /var/www/second
- https://www.first.com ΠΈ https://www.second.com Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΒ Certbot Π½Π° NGINX
Certbot β ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»ΡΒ Letβs Encrypt, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅:Β https://certbot.eff.org/docs/.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Β Certbot Π² Ubuntu:
sudo apt-get update
sudo add-apt-repository ppa:certbot/certbot #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
sudo apt-get update
sudo apt-get install -y python-certbot-nginxΒ #ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΒ Certbot
ΠΠ°Π»Π΅Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ ΠΎΡΡΡ Π² HTTPS:
sudo certbot --nginx
Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π°Ρ ΠΏΠΎΠΏΡΠΎΡΡΡ:
- Π²Π²Π΅ΡΡΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ,
- ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Ρ Π£ΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ,
- ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½ΡΒ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ HTTPS (ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠΎΠΊΠΈ server_name Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Nginx),
- ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ HTTP Π½Π° HTTPS (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ).
ΠΠ΄Π΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Ρ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠΌ A.Β ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SSL Labs, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://www.ssllabs.com/ssltest/analyze.html?d=ΠΠΠΠΠ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
- http://first.com ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΈΡ Π½Π° https://first.com
- http://second.com ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΈΡ Π½Π° https://second.com
- http://www.first.com ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΈΡ Π½Π° https://www.first.com
- http://www.second.com ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΈΡ Π½Π° https://www.second.com
- https://first.com ΠΈ https://www.first.com Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ ΠΏΠ°ΠΏΠΊΠΈ from /var/www/first
- https://second.com ΠΈ https://www.first.comΒ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ ΠΏΠ°ΠΏΠΊΠΈ /var/www/second
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Letβs Encrypt
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅, Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Certbot Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π·Π°Π΄Π°ΡΡ cron Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:
sudo certbot renew --dry-run #ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
sudo certbot certificatesΒ #ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°Β ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
Β ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° HTTP/2 Π½Π° NGINX
ΠΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Certbot, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ². ΠΠΎΠ½ΡΠΈΠ³ first.conf ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
server {
server_name first.com www.first.com;
root /var/www/first.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/first.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/first.com/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
}
server {
if ($host = www.first.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = first.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name first.com www.first.com;
return 404; # managed by Certbot
}
Certbot Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ HTTP / 2, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π²Π°Π» Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ:
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
Π½Π° ΡΡΠΈ:
listen [::]:443 ssl http2 ipv6only=on;
listen 443 ssl http2;
gzip off;
Π Π΅ΠΉΡΠΈΠ½Π³ Π+ Π΄Π»Ρ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
Π NGINX ΠΊΠΎΠ½ΡΠΈΠ³Π°Ρ Π½Π°ΡΠΈΡ ΡΠ°ΠΉΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ:
ssl_certificate /etc/letsencrypt/live/YOUR-DOMAIN/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/YOUR-DOMAIN/privkey.pem;
ΠΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ OCSP StaplingΒ (ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ OCSP), ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ Ρ ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π½ΡΠΆΠ΅Π½ ssl_trusted_certificate.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΡΡΠΎΠΊΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Certbot ΡΠΎΠ·Π΄Π°Π» Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°) ΠΏΠΎΡΠ»Π΅ ΡΡΡΠΎΠΊΠΈ ssl_certificate_key:
ssl_trusted_certificate /etc/letsencrypt/live/YOUR-DOMAIN/chain.pem;
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ SSL Π² /etc/letsencrypt/options-ssl-nginx.conf. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";
ΠΠ°ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π°:
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload;";
add_header Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; script-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self';";
add_header Referrer-Policy "no-referrer, strict-origin-when-cross-origin";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Nginx ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SSL Labs. ΠΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ΅ΠΉΡΠΈΠ½Π³ Π+. Π ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ±Π»Ρ Nginx, Π° Π½Π΅ Apache, ΡΠΈΡΠ°Π΅ΠΌ ΡΡΡ:Β NGINX ΠΈΠ»ΠΈ Apache?
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Letβs Encrypt Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Ρ CMS Bitrix ΠΈ Nginx
ΠΠ°, Π½Π° Π₯Π°Π±ΡΠ΅ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Letβs Encrypt, Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Ρ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ Π½Π°ΡΡΠ». Π₯ΠΎΡΠ΅Π» Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π». Π ΡΠΎΠΌΡ ΠΆΠ΅, Ρ ΠΌΠ°Ρ 2016 Π³ΠΎΠ΄Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ±ΠΈΡΡ Ρ ΡΠΎΠ»ΠΊΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. Π’Π°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅Π±Π΅ Π½Π° ΠΏΠ°ΠΌΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π² ΠΏΠΎΠΌΠΎΡΡ.
ΠΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΡΠΈΠ²ΡΠ». Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ° Bitrix environment Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ CentOS 6.X. ΠΡΠ»ΠΈ ΠΆΠ΅ Π½Π΅Ρ, Π²Ρ ΠΈ ΡΠ°ΠΌΠΈ Π·Π½Π°Π΅ΡΠ΅ Π³Π΄Π΅ ΡΡΠΎ Π»Π΅ΠΆΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ git:
# yum install git
ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /tmp:
# cd /tmp
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ git ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Letβs Encrypt. Π‘Π°ΠΌ ΡΠΊΡΠΈΠΏΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ certbot:
# git clone https://github.com/certbot/certbot
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠΊΠ°ΡΠ°Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
# cd certbot
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΄Π°Π΅ΠΌ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΡΠΊΡΠΈΠΏΡΠ°:
# chmod a+x ./certbot-auto
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°:
# ./certbot-auto certonly --webroot --agree-tos --email [email protected] -w /home/bitrix/www/ -d my-domain.ru -d www.my-domain.ru
—webroot β ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄Π»Ρ nginx ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Π΄Π΅ΠΆΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΊΠ»ΡΡ;
—agree-tos β ΡΠΎΠ³Π»Π°ΡΠ°Π΅ΠΌΡΡ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ;
—email [email protected] β ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉ e-mail. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°;
-w /home/bitrix/www β ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ°ΠΉΡΠ°;
-d my-domain.ru β Π½Π°Ρ Π΄ΠΎΠΌΠ΅Π½. ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ -d site.my-domain.ru.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡ Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ. Π‘ΠΎΠ³Π»Π°ΡΠ°Π΅ΠΌΡΡ ΠΈ ΠΆΠ΄ΡΠΌ.
ΠΡΠ»ΠΈ Π²ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain.ru/fullchain.pem. Your
cert will expire on 2016-08-21. To obtain a new version of the
certificate in the future, simply run Certbot again.
- If you lose your account credentials, you can recover through
e-mails sent to [email protected].
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ nginx’Ρ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ssl.conf:
# vim /etc/nginx/bx/conf/ssl.conf
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ Ρ Π½ΠΈΠΌΠΈ ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠ΅:
ssl_certificate /etc/letsencrypt/live/my-domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.ru/privkey.pem;
ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ssl, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅:
ssl on;
keepalive_timeout 70;
keepalive_requests 150;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ nginx:
# service nginx reload
ΠΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π²ΡΠ΄Π°Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π·Π½Π°ΡΠΈΡ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²ΡΠ΄Π°Π΅ΡΡΡ Π½Π° 90 Π΄Π½Π΅ΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
# certbot-auto renew
ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π² cron.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ. ΠΠ»Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠ°ΡΡΡ Yet another ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ssl-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Let’s Encrypt ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π³Π°ΠΉΠ΄.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Let’s Encrypt Ρ NGINX Π² Ubuntu 18.04
ΠΠ±Π·ΠΎΡ
Π‘ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Let’s Encrypt ΠΎΡΠΊΡΡΠ»ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΌΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Π» Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΡ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π· ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ Π·Π°ΡΡΠ°Ρ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄ΠΎ Letβs Encrypt Π·Π°ΠΏΡΡΠΊΠ°Π» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ Π² Π³ΠΎΠ΄. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Let’s Encrypt Ρ NGINX.
Letβs Encrypt ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Certbot, ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ — ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.Certbot Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² PPA, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Letβs Encrypt, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PPA
Letβs Encrypt ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Ubuntu PPA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ certbot ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Apache ΠΈ Nginx, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΠ΅Π½Ρ.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Letβs Encrypt PPA Π² Ubuntu, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
sudo apt-get update sudo apt-get ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ sudo add-apt-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΡΠ΅Π»Π΅Π½Π½Π°Ρ sudo add-apt-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ppa: certbot / certbot
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Certbot ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Nginx, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
sudo apt-get ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ certbot python-certbot-nginx
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° NGINX ΠΈ Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΠ»Π°Π³ΠΈΠ½ NGINX Π΄Π»Ρ Certbot Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π΄Π»Ρ Π²Π°Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ NGINX. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ certbot Ρ ΡΠ»Π°Π³ΠΎΠΌ βnginx.
ΡΡΠ΄ΠΎ certbot --nginx
ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, Π΅ΡΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Ρ ΠΎΡΡΠ°.ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² /var/log/letsencrypt/letsencrypt.log ΠΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ: Authenticator nginx, Installer nginx Π Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈΠΌΡ (Π°) (ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΈ / ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π») (Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π²Π²Π΅Π΄ΠΈΡΠ΅ 'c'):
ΠΠΌΡ (Π°) Ρ ΠΎΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² DNS ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ. IP-Π°Π΄ΡΠ΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ DNS, ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°.Certbot ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°Π΄Π°Ρ: http-01 Π²ΡΠ·ΠΎΠ² Π΄Π»Ρ blog2.rigpig.ca ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡβ¦ Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° VirtualHost / etc / nginx / sites-enabled / default
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Certbot Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ NGINX ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠ°ΠΉΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ±ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ HTTP-ΡΡΠ°ΡΠΈΠΊ Π½Π° HTTPS, ΡΠ΄Π°Π»ΡΡ HTTP-Π΄ΠΎΡΡΡΠΏ. 1: ΠΠ΅Π· ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ - Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°. 2: ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ - ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° HTTPS. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΡΡ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ HTTPS. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ [1-2], Π·Π°ΡΠ΅ΠΌ [Π²Π²Π΅Π΄ΠΈΡΠ΅] (Π½Π°ΠΆΠΌΠΈΡΠ΅ 'c' Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ): 2
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ NGINX, Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Π³ΠΎΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ TLS.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Let’s Encrypt Ρ Nginx Π² Ubuntu 16.04 ΠΈ Ubuntu 18.04
ΠΡΠΎ ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Let’s Encrypt SSL Ρ NginX Π½Π° Ubuntu 16.04 ΠΈΠ»ΠΈ Ubuntu 18.04 (ΠΎΠ±Π° ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ LTS). Π― ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠΌΠ½ΠΎΠΉ. Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Π² Π²Π΅ΡΡΠΈΡΡ Ubuntu. ΠΡΠΈ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΡΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ Ubuntu 16.04 ΠΈΠ»ΠΈ Ubuntu 18.04 Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ SSH, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π½Π° IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Linux ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ubuntu. ΠΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΌΠΈΠ½ΡΡ.
Π¨Π°Π³ 1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ LetsEncrypt
ΠΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π°ΠΌ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ.
sudo apt-get update
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ubuntu 16.04
sudo apt-get install software-properties-common python-software-properties
sudo add-apt-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ppa: certbot / certbot
sudo apt-get update
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ubuntu 18.04
sudo apt-get install software-properties-common
sudo add-apt-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ppa: certbot / certbot
sudo apt-get update
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ LetsEncrypt Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ:
sudo apt-get install letsencrypt
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ letsencrypt, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ certbot ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ SSL .
Π¨Π°Π³ 2. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ NginX Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ SSL
Π ΠΌΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ssl.itsyndicate.org . ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π½ΡΠΆΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π»Π°ΠΉΡΡ Π°ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ NginX Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ΄ΡΡ Π½Π° Π½Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π΅-ssl, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΠΏΠΎΡΡ 80.
ΡΠ΅ΡΠ²Π΅Ρ {
ΡΠ»ΡΡΠ°Π΅ΠΌ 80 default_server;
ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° _;
location ~ /\.well-known/acme-challenge/ {
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ΅;
ΠΊΠΎΡΠ΅Π½Ρ / Π²Π°Ρ / www / letsencrypt;
try_files $ uri = 404;
ΡΠ»ΠΎΠΌΠ°ΡΡ;
}
}
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /\.well-known/acme-challenge/
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ° Π²ΡΠ΅Ρ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ / var / www / letsencrypt
Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ acme-ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ vhost NginX ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΡΡΠ΄ΠΎ mkdir -p / var / www / letsencrypt
ΠΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ NginX Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
Π‘ΡΠ΄ΠΎ Nginx -t
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
nginx: ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ / etc / nginx / nginx.conf ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅
nginx: ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/nginx/nginx.conf, ΡΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π» ΡΡΠΏΠ΅ΡΠ½ΠΎ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° NginX, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° Π²ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ Let’s Encrypt , Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
sudo service nginx ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ
Π¨Π°Π³ 3. ΠΠ°ΠΏΡΠΎΡΠΈΡΠ΅ Π½ΠΎΠ²ΡΠΉ Let’s Encrypt SSL
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Let’s Encrypt Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°:
sudo letsencrypt certonly -a webroot --webroot-path = / var / www / letsencrypt -m mail @ example.com --agree-tos -d ssl.itsyndicate.org
ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:
--webroot-path = / var / www / letsencrypt
— Π·Π΄Π΅ΡΡ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΡ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ NginX Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
-m [email protected]
— Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π²Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
--agree-tos
— ΡΡΠ° ΠΎΠΏΡΠΈΡ Π½ΡΠΆΠ½Π° Π½Π΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ TOS, Π° Π΄Π»Ρ ΠΈΡ
ΠΏΡΠΈΠ½ΡΡΠΈΡ.ΠΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Let’s Encrypt SSL
-d ssl.itsyndicate.org
— ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΄Π°ΡΠΈ SSL Π΄Π»Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ:
ΠΠΠΠΠ«Π ΠΠ ΠΠΠΠ§ΠΠΠΠ―:
- ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΠ΅ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π·
ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ°, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° [email protected].
- ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ! ΠΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ Π²
/etc/letsencrypt/live/ssl.itsyndicate.org/fullchain.ΠΏΠ΅ΠΌ. ΠΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ 2018-08-01. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Let's Encrypt Π΅ΡΠ΅ ΡΠ°Π·.
- Π£ΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ»ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ Π² Π²Π°ΡΠ΅ΠΌ Let's Encrypt
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² / etc / letsencrypt. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ΅ΠΉΡΠ°Ρ. ΠΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ
ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Let's
ΠΠ°ΡΠΈΡΡΡΠΉΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ.
- ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ Let's Encrypt, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ:
ΠΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ISRG / Let's Encrypt: https: // letsencrypt.ΠΎΡΠ³ / ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ
ΠΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π² EFF: https://eff.org/donate-le
Π¨Π°Π³ 4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° NginX vhost
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ SSL Π½Π° /etc/letsencrypt/live/ssl.itsyndicate.org/ . ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ NginX Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ https Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. ΠΠΎΡ ΠΌΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΡΠ΅ΡΠ²Π΅Ρ {
ΠΈΠΌΡ_ΡΠ΅ΡΠ²Π΅ΡΠ° itsyndicate.org;
ΡΠ»ΡΡΠ°ΠΉΡΠ΅ 443 ssl;
ssl Π²ΠΊΠ»ΡΡΠ΅Π½;
ssl_certificate /etc/letsencrypt/live/ssl.itsyndicate.org / fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ssl.itsyndicate.org/privkey.pem;
ΠΊΠΎΡΠ΅Π½Ρ / var / www / html /;
index index.php index.html index.htm;
location ~ /.well-known {
ΠΊΠΎΡΠ΅Π½Ρ / Π²Π°Ρ / www / letsencrypt;
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ΅;
}
}
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ NginX:
ΡΡΠ΄ΠΎ nginx -t
sudo service nginx ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ
Π¨Π°Π³ 5. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ SSL-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Let’s Encrypt
Let’s Encrypt Π²ΡΠ΄Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π½Π° 90 Π΄Π½Π΅ΠΉ.Π£ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π°Ρ SSL ΡΠΊΠΎΡΠΎ ΠΈΡΡΠ΅ΡΠ΅Ρ, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΉ cron Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ubuntu Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° SSL. ΠΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° letsencrypt Π² Ubuntu 16.04 ΠΈ Ubuntu 18.04 Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ .
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ubuntu 16.04 Let’s Encrypt
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ» /etc/cron.daily/letsencrypt Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ cron ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
#! / Bin / bash
/ usr / bin / letsencrypt ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ && / etc / init.ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° d / nginx
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ubuntu 18.04 Let’s Encrypt
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ» Β« /etc/cron.daily/letsencrypt Β», Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ:
#! / Bin / bash
/ usr / bin / letsencrypt Renew --renew-hook "/etc/init.d/nginx reload"
Π¨Π°Π³ 6 — ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ SSL
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΡ, ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ SSL, Π½ΠΎ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π°, ΠΏΠ΅ΡΠ²ΡΠΉ — curl :
Π²ΠΎΠ·ΡΠΌΠΈ ΡΠ°ΡΠΊΡ ΠΊΠΎΡΠ΅ ΠΈ ΡΠ°ΡΡΠ»Π°Π±ΡΡΡ
.
curl -vI https: // ssl.itsyndicate.org
* Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°:
* ΡΠ΅ΠΌΠ°: CN = ssl.itsyndicate.org
* ΠΠ°ΡΠ° Π½Π°ΡΠ°Π»Π°: 3 ΠΌΠ°Ρ, 15:44:12 2018 Π³ ..
* ΠΠ°ΡΠ° ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ: 1 Π°Π²Π³ΡΡΡΠ° 15:44:12 2018 ΠΏΠΎ ΠΡΠΈΠ½Π²ΠΈΡΡ
* subjectAltName: Ρ
ΠΎΡΡ "ssl.itsyndicate.org" ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ "ssl.itsyndicate.org"
* ΡΠΌΠΈΡΠ΅Π½Ρ: C = US; O = ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ; CN = Let's Encrypt Authority X3
* ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ SSL Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ — ΠΎΡΠΊΡΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ Π² Google Chrome ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ SSL Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Let’s Encrypt SSL Π½Π° Ubuntu 16.04 ΠΈΠ»ΠΈ Ubuntu 18.04 Π΄Π»Ρ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ SEO-ΡΠ΅ΠΉΡΠΈΠ½Π³Π°. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΡΠΈΡΠΈΠΊΠ° Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ!
.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° SSL Ρ Lets Encrypt Π½Π° Ubuntu ΠΈ Nginx
Let’s Encrypt Π½Π΅Π΄Π°Π²Π½ΠΎ Π²ΡΡΠ»Π° Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΡ. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Let’s Encrypt?
Letβs Encrypt — ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΎΡΠΊΡΡΡΡΠΉ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (Π¦Π‘), ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° Π±Π»Π°Π³ΠΎ ΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Letβs Encrypt — ΡΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π³ΡΡΠΏΠΏΠΎΠΉ Internet Security Research Group (ISRG).
ΠΡΠ°ΠΊ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ https. Π£ΡΠ°! π
ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ Π½Π° Nginx.
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git clone https: // github.com / letsencrypt / letsencrypt
cd letsencrypt
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ git
, ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ apt-get
.
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Nginx
sudo service nginx stop
ΠΠ°ΠΏΡΡΡΠΈΡΡ Π°Π²ΡΠΎΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΡΡΡΠ½ΡΡ
Π£ΡΠΈΠ»ΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ Nginx Π΅ΡΠ΅ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π° (Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΠΎΡΠΎ!), ΠΠΎΡΡΠΎΠΌΡ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ letsencrypt-auto
, ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»ΠΎΠΌ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΉ.ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎ:
./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory auth
ΠΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΡΡΠΎΡ. ΠΡΠΈΠΌΠΈΡΠ΅ ΡΡΠΎ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ (-Π°), ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²Π°ΠΌ ΡΠΊΠ°ΠΆΠ΅Ρ. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Ρ ΠΈ Π±Π΅Π· www
, Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ½ ΡΠΎΠΎΠ±ΡΠΈΡ Π²Π°ΠΌ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ:
/ etc / letsencrypt / live / www.yourdomain.com/
Π ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄Π²Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π²Π°ΠΆΠ½Ρ: fullchain.pem
ΠΈ privkey.pem
, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π² Nginx
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ nginx, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SSL ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ nginx Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π»ΠΈΠ±ΠΎ Π² /etc/nginx/nginx.conf
, Π»ΠΈΠ±ΠΎ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΡΠ°ΠΉΠ»Π΅ Π² / etc / nginx / sites-enabled /
. ΠΠΎΠΉ Π±ΡΠ» Π½Π° ΡΠ°ΠΉΡΠ°Ρ
Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ
Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ghost
(e.Π³. / etc / nginx / sites-enabled / ghost
).
Π‘ΠΊΠ°ΠΆΠΈΡΠ΅ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡ 443
Π Π±Π»ΠΎΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°
Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ Π½Π° ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° 443:
ΡΠ΅ΡΠ²Π΅Ρ {
ΡΠ»ΡΡΠ°ΡΡ 443 default_server; # ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ 80
ΡΠ»ΡΡΠ°ΡΡ [::]: 443 default_server ipv6only = on;
#Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ
}
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ipv6 Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ.
ΠΠΊΠ»ΡΡΠΈΡΠ΅ SSL
ΠΠΊΠ»ΡΡΠΈΡΠ΅ SSL ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ Π΅ΠΌΡ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠΎ Π² Π»ΡΠ±ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² Π±Π»ΠΎΠΊΠ΅ server
:
ΡΠ΅ΡΠ²Π΅Ρ {
ΡΠ»ΡΡΠ°ΡΡ 443 default_server;
ΡΠ»ΡΡΠ°ΡΡ [::]: 443 default_server ipv6only = on;
ssl Π²ΠΊΠ»ΡΡΠ΅Π½;
ssl_certificate / etc / letsencrypt / live / www.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.yourdomain.com/privkey.pem;
#Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ
}
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Ρ 80 Π½Π° 443
ΠΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ (Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ). Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΡΡ Π½Π° http
, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΡΡ Π½Π° https
. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π±Π»ΠΎΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΡ 80 ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° 443:
ΡΠ΅ΡΠ²Π΅Ρ {
# Π²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
}
server {
ΡΠ»ΡΡΠ°ΡΡ 80;
server_name yourdomain.(. *) $ https: //yourdomain.com$1 ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ;
}
}
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ Π²ΡΠΉΠ΄ΠΈΡΠ΅.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π½Π° 100% Π² ΡΠ²ΠΎΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ Π½Π°Π±ΠΎΡΠ° ΡΠ΅ΠΊΡΡΠ° (Π° Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½), Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Nginx ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΅Π΅, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΎΠ½ ΡΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ:
nginx -c /etc/nginx/nginx.conf -t
Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠΏΠ°Π» ;
, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΎ ΠΌΠ΅Π½Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° 37 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Nginx
sudo service nginx start
ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° https://yourdomain.com
ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ Π½ΠΎΠ²ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ.
ΠΠΎΠΏΡΠΎΡΡ?
ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ!
.Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
— Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Certbot 1.8.0.dev0
Certbot ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ (ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡΡ
ΠΊΠ°ΠΊ Β«ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΡΒ») Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ
ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ·ΡΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅
ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΡΠΎΠΌ
Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ; ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ certbot
Π½Π° Π²Π°ΡΠ΅ΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ letsencrypt
, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΈΠ»ΠΈ certbot-auto
, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ certbot
, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ.
ΠΠ»ΠΈΠ΅Π½Ρ Certbot ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ
ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²: Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΡ.
Authenticators — ΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ certonly
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Π²Ρ
ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½ (Ρ), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ
Π΄ΠΎΠΌΠ΅Π½Π° (ΠΎΠ²) ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ / etc / letsencrypt
Π½Π° Π²Π°ΡΠ΅ΠΌ
ΠΌΠ°ΡΠΈΠ½Π°.ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ (ΠΎΠ½ Π½Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ
ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ). ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ
Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Certbot Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
Π£ΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΈ
— ΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ install
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π°
ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠ΅ΡΠ΅Π· HTTPS, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ certbot.
ΠΠ»Π°Π³ΠΈΠ½Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΈ ΡΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠ΅, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ certbot run
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°. ΠΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° run
ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ
ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°.
ΠΠ»Π°Π³ΠΈΠ½ | Auth | Inst | ΠΠ°Π½ΠΊΠ½ΠΎΡΡ | Π’ΠΈΠΏΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (ΠΈ ΠΏΠΎΡΡ) |
---|---|---|---|---|
apache | Y | Y | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Apache. | http-01 (80) |
nginx | Y | Y | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Nginx. | http-01 (80) |
Π²Π΅Π±-ΠΊΠΎΡΠ΅Π½Ρ | Y | N | ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π²Π΅Π±-ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ. | http-01 (80) |
Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ | Y | N | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Β«Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉΒ» Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΡΡ 80. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° Π‘ΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π· Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΡΡΠΌΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»Π΅Π½. | http-01 (80) |
ΠΠ»Π°Π³ΠΈΠ½Ρ DNS | Y | N | ΠΡΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ DNS, ΡΡΠΎΠ±Ρ Π΄ΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ — Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΎΡ Letβs Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅. | Π΄Π½Ρ-01 (53) |
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ | Y | N | ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΄Π°Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Π½ΠΎΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ , ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±. | http-01 (80) ΠΈΠ»ΠΈ dns-01 (53) |
ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ACME Π΄Π»Ρ
Π΄ΠΎΠΊΠ°ΠΆΠΈΡΠ΅, ΡΡΠΎ Π²Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½.ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ: http-01 (ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΡ 80).
ΠΈ dns-01 (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° DNS-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π°
ΠΏΠΎΡΡ 53, Ρ
ΠΎΡΡ ΡΠ°ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΡΡΠΎ ΠΈ Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ). ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ
ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π·Π°Π΄Π°ΡΠΈ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½
Ρ --preferred-calls
.
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠΠΈΠΆΠ΅ ΠΌΡ ΠΎΠΏΠΈΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ
ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°, Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Apache
ΠΠ»Π°Π³ΠΈΠ½ Apache Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΠ‘ Π½Π° Π±Π°Π·Π΅ Debian, Fedora, SUSE, Gentoo ΠΈ Darwin.ΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½Π° Apache.
Π²Π΅Π± ΡΠ΅ΡΠ²Π΅Ρ. Π§ΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅
--apache
.
Webroot
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ
ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΈ Π²Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ
Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΡΠ΄Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π²ΠΊΠ»ΡΡΠΈΠ² certonly
ΠΈ --webroot
Π²
ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ --webroot-path
ΠΈΠ»ΠΈ -w
Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (Β«Π²Π΅Π±-ΠΊΠΎΡΠ΅Π½ΡΒ»), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΡΠ°ΠΉΠ»Ρ
ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²Π°ΡΠΈΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, --webroot-path / var / www / html
ΠΈΠ»ΠΈ --webroot-path / usr / share / nginx / html
— Π΄Π²Π° ΠΎΠ±ΡΠΈΡ
ΠΏΡΡΠΈ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌΡ Π²Π΅Π±-ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠ°Π·Ρ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΏΠ»Π°Π³ΠΈΠ½
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΎΡΠΊΡΠ΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ
ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.ΠΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ
ΡΠΊΠ°Π·Π°Π½ΠΎ --webroot-path
. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
certbot certonly --webroot -w / var / www / example -d www.example.com -d example.com -w / var / www / other -d other.example.net -d another.other.example.net
ΠΏΠΎΠ»ΡΡΠΈΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΈΠΌΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
/ var / www / example
ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
ΠΈ
/ var / www / other
Π΄Π»Ρ Π²ΡΠΎΡΡΡ
Π΄Π²ΡΡ
.
ΠΠ»Π°Π³ΠΈΠ½ webroot ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ
Π²Π°ΠΌΠΈ
Π΄ΠΎΠΌΠ΅Π½Ρ Π² $ {webroot-path} /. well-known / acme-challenge
. Π’ΠΎΠ³Π΄Π° Let’s Encrypt
ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π΅Π»Π°Π΅Ρ HTTP-Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ DNS Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ certbot. ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠ°
Π½Π° Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
66.133.109.36 - - [05 / Π―Π½Π² / 2016: 20: 11: 24 -0500] "GET /.well-known/acme-challenge/HGr8U1IeTW4kY_Z6UIyaakzOkyQgPr_7ArlLgtZE8SX HTTP / 1.1 "200 87" - "" Mozilla / 5.0 (ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ; ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Let's Encrypt; + https: //www.letsencrypt.org) "
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ webroot Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ
ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠΊΡΡΡΡΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². ΠΡΠ»ΠΈ /. well-known
Π»Π΅ΡΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ Π²Π½ΡΡΡΠΈ /.well-known/acme-challenge
ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ
Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ.
Nginx
ΠΠ»Π°Π³ΠΈΠ½ Nginx Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ.ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Nginx ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Ρ
ΠΎΡΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ certbot --nginx rollback
). ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ²
ΡΠ»Π°Π³ --nginx
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠ²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΠΈΠ»ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΠ΅)
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎΒ» Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ certonly
ΠΈ - standalone
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ ΠΏΠΎΡΡΡ 80 Π²
ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΡ
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Certbot ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡΡΡ ΠΊ ΠΏΠΎΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
IPv6 Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ ΡΡΠΎΠΌΡ ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ IPv4; Certbot ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π°
ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄Π½Π° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ Linux ΡΡΠ°ΡΠΈΠΊ IPv4 Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°
ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ IPv6 ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΡΠ±ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ -
, ΡΡΠΎΠ±Ρ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Certbot, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
(ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ») Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ.
ΠΠ»Π°Π³ΠΈΠ½Ρ DNS
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΡ Let’s Encrypt ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅
certbot
Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·
ΠΠ»Π°Π³ΠΈΠ½Ρ Certbot Π΄Π»Ρ DNS.
ΠΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π½Π΅ Π²Ρ
ΠΎΠ΄ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Certbot ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.Π₯ΠΎΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ DNS Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ
certbot-auto
, ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°Ρ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΠ‘, ΠΊΠ°ΠΊ Docker
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ. ΠΠΎΡΠ΅ΡΠΈΡΠ΅ https://certbot.eff.org, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½Ρ DNS Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ:
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ certbot
Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅
ΠΊΡΠΎΠΌΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π°
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ½ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½.ΠΠΎΠΊΠ° ΡΠΏΡΡΡΠ°Π½ ΠΎΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΡΠΊΠ°Π·Π°Π²
certonly
ΠΈ - Π²ΡΡΡΠ½ΡΡ
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ
Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π°Π½Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ
Π±ΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠ»Π°Π³ΠΈΠ½ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² http
ΠΈΠ»ΠΈ dns
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ --preferred-calls
Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ² ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ Π²ΠΊΡΡΡ.
ΠΠ°Π΄Π°ΡΠ° http
ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π²Π°Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π² /.ΠΊΠ°ΡΠ°Π»ΠΎΠ³ well-known / acme-challenge /
Π½Π°ΠΏΡΡΠΌΡΡ
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (Β«Π²Π΅Π±-ΠΊΠΎΡΠ΅Π½ΡΒ»), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²Π°ΡΠΈΠΌ
Π²Π΅Π± ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ webroot, Π½ΠΎ Π½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ dns
certbot
ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π²Π°Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ TXT DNS
Π·Π°ΠΏΠΈΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ
ΠΎΡΡΠ°
Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠ΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ _acme-challenge
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ.com
, Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Π·ΠΎΠ½Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
_acme-challenge.example.com. 300 IN TXT "gfj9Xq ... Rg85nM"
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈ
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ / ΠΈΠ»ΠΈ ΠΎΡΠΈΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΡΠ»Π°Π³ΠΈ --manual-auth-hook
ΠΈ --manual-cleanup-hook
. ΠΡΠΎ
Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ
ΡΠΊΠΎΠ².
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ
ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°.ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ
--authenticator
ΠΈΠ»ΠΈ -a
ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Ρ --installer
ΠΈΠ»ΠΈ
-i
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° webroot
Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ apache Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
certbot run -a webroot -i apache -w / var / www / html -d example.com
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ½ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ nginx Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.(ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ
ΠΏΡΠΎΠ΄Π»Π΅Π²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.)
certbot run -a manual -i nginx -d example.com
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ
Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΠΈ Π±Π΅ΡΠ°-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π²
ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠ»Π°Π³ΠΈΠ½ | Auth | Inst | ΠΠ°Π½ΠΊΠ½ΠΎΡΡ |
---|---|---|---|
haproxy | Y | Y | ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ HAProxy |
s3 ΠΏΠ΅ΡΠ΅Π΄Π½ΡΡ | Y | Y | ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Amazon CloudFront ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½ S3 |
ΠΠ°Π½Π΄ΠΈ | Y | N | ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· Gandi LiveDNS API |
Π»Π°ΠΊ | Y | N | ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²Π΅Ρ Varnish |
Π²Π½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ | Y | Y | ΠΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² |
ΠΏΡΠΈΡΡΠ½Π» | N | Y | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π² ΠΏΡΠΈΡΡΠ½Π» ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ OpenVPN |
proxmox | N | Y | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Proxmox |
dns-Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ | Y | N | ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ |
dns-ispconfig | Y | N | DNS-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ISPConfig Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ DNS-ΡΠ΅ΡΠ²Π΅ΡΠ° |
DNS-ΠΎΠ±Π»Π°ΠΊΠΎ DNS | Y | N | DNS-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ CloudDNS API |
dns-Π²Ρ ΠΎΠ΄ wx | Y | Y | DNS-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ INWX ΡΠ΅ΡΠ΅Π· XML API |
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Π·Π½Π°Π΅Ρ Certbot, Π·Π°ΠΏΡΡΡΠΈΡΠ΅
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ certbot
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅:
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ: ΠΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°: example.com ΠΠΎΠΌΠ΅Π½Ρ: example.com, www.example.com Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: 2017-02-19 19: 53: 00 + 00: 00 (ΠΠΠΠ‘Π’ΠΠΠ’ΠΠΠ¬ΠΠ: 30 Π΄Π½Π΅ΠΉ) ΠΡΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ: /etc/letsencrypt/live/example.com/fullchain.pem ΠΡΡΡ ΠΊ Π·Π°ΠΊΡΡΡΠΎΠΌΡ ΠΊΠ»ΡΡΡ: / etc / letsencrypt / live / example.com / privkey.pem
ΠΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΈΠΌΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π°Π³ --cert-name
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°
,
certonly
, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ
, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠΈΠΌΠ΅Ρ:
certbot certonly --cert-name example.com
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ
ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ°
ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· ΡΠ΅Ρ
ΠΆΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ
ΠΈΠΌΠ΅Π½.
ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ
ΠΈΠ»ΠΈ Certonly
Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ
ΠΈΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Certbot ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ.
- ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
, - Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΈ - ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²
ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Certbot ΠΏΡΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Certbot ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΠΈΡΡ Π²Π°Ρ, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠ΅Π»ΠΈ.
--force-Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Certbot Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΡΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΠΌΠ΅Π½
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ΅ΡΠ΅Π· -d
. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ
Π° ΡΡΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ (Β« live
Β»
ΡΡΡΠ»ΠΊΠ°) Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΡΠΎ
Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ°
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
--duplicate
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Certbot ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΡΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.ΠΡΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π΅ Π±ΡΠ΄ΡΡ
ΠΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
.
--expand
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Certbot ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½ΠΎΠ²ΡΠΌ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΡΠ°ΡΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π½ΠΎΠ²ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ. Π‘ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ --expand
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -d
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ
Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ:
certbot --expand -d ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ.com, example.com, newdomain.com
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
certbot --expand -d existing.com -d example.com -d newdomain.com
Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ --cert-name
Π²ΠΌΠ΅ΡΡΠΎ --expand
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ
ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΈ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΡ
.
--allow-subset-of-names
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Certbot ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π΅ΡΠ»ΠΈ
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ
Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΉ.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ
Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΠΎΡ
ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΡΠΈΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², Π½ΠΎΠ²ΡΠΉ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π»ΡΠ±ΡΠΌΠΈ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ,
ΠΈΠ»ΠΈ Π½Π΅Ρ ΠΈΡΡΠ΅ΠΊ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ
Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ACME, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ
ΠΠΎΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
Π€Π»Π°Π³ --cert-name
ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΡΡ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅,
ΠΏΡΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° -d
ΠΈΠ»ΠΈ --domains
.ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ example.com
ΡΠ°Π½Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΎΡΡ example.com
ΠΈ www.example.com
, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ example.com
, ΡΠΊΠ°Π·Π°Π² ΡΠΎΠ»ΡΠΊΠΎ example.com
Ρ ΡΠ»Π°Π³ΠΎΠΌ -d
ΠΈΠ»ΠΈ --domains
. ΠΡΠΈΠΌΠ΅Ρ:
certbot certonly --cert-name example.com -d example.com
Π’ΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΡΡ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ΅, ΠΈΠ»ΠΈ Π΄Π»Ρ
ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ:
certbot certonly --cert-name example.com -d example.org, www.example.org
ΠΡΠ·ΡΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ» Π²Π·Π»ΠΎΠΌΠ°Π½ ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ·Π²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΠΎ ΠΈΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ,
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ revoke
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° revoke
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
(ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° cert.pem
), Π° Π½Π΅ Π½Π° ΠΈΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½. ΠΡΠΈΠΌΠ΅Ρ:
certbot revoke --cert-path /etc/letsencrypt/live/CERTNAME/cert.pem
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠ·ΡΠ²Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° cause
.ΠΡΠΈΡΠΈΠ½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ keycompromise
,
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ
, Π·Π°ΠΌΠ΅Π½Π΅Π½Π°
ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ°
:
certbot revoke --cert-path /etc/letsencrypt/live/CERTNAME/cert.pem --reason keycompromise
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° --staging
ΠΈΠ»ΠΈ --test-cert
, ΡΡΠΎΡ ΡΠ»Π°Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π²
ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ
.ΠΠΎΡΠ»Π΅ ΠΎΡΠ·ΡΠ²Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° (ΠΈΠ»ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
Π·Π°Π΄Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ) Π²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ delete
:
certbot delete --cert-name example.com
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ delete
Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ΄Π»Π΅Π½ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ·ΡΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Letβs Encrypt.
ΠΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Letβs Encrypt CA Π²ΡΠ΄Π°Π΅Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ (90
Π΄Π½Π΅ΠΉ). Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Ρ
ΠΎΡΡ Π±Ρ ΡΠ°Π· Π² 3
ΠΌΠ΅ΡΡΡΡ.
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ certbot, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π·
ΡΠ°Π·Π΄Π°ΡΠ° ΠΈΠ΄Π΅Ρ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ,
ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π΅ΡΡΠΈΠΈ Debian ΠΈ Ubuntu, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· apt
,
CentOS / RHEL 7 ΡΠ΅ΡΠ΅Π· EPEL ΠΈ Ρ. Π. Π‘ΠΌ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅
ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 0.10.0, Certbot ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ , ΠΏΡΠΎΠ΄Π»ΠΈΡΡ
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΡΠΎΠ΄Π»ΠΈΡΡ
ΠΈΡ
. Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΎΡΠΌΠ° — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ
.
certbot ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ,
ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· 30 Π΄Π½Π΅ΠΉ. Π’ΠΎΡ ΠΆΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ
Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²ΡΠ΄Π°ΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ
ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Certonly
, ΠΏΡΠΎΠ΄Π»ΠΈΡΡ
Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π°
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΡΠΈΡΡΠ²Π°Π΅Ρ, Π΅ΡΡΡ Π»ΠΈ ΡΡΠ΄ΠΎΠΌ
ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΊΠ°.ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Renew
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ (ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½) Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ,
ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠ³Π»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ
ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
Π±Π»ΠΈΠ·ΠΎΠΊ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠΊΠΎΠ»Ρ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΡΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° refresh
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΏΠΎΡΡΠ°ΠΌ, ΠΈ
Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ.ΠΡΠΈΠΌΠ΅Ρ:
certbot refresh --pre-hook "service nginx stop" --post-hook "service nginx start"
ΠΡΠ»ΠΈ Π»ΠΎΠ²ΡΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΡΡ
ΠΎΠ΄Π°, Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°
Π½Π° stderr
, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ΄Π°ΡΠ½ΡΠΉ ΠΊΡΡΡΠΎΠΊ
Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡ
ΠΎΠ΄Π° Certbot Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΡΡ
ΠΎΠ΄Π°, Π½ΠΎ
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Certbot Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΡΡ
ΠΎΠ΄Π° ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠΈ,
Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠΈΠΊ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ±ΠΎΠΈ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ
Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ΄ Π²ΡΡ
ΠΎΠ΄Π°. Π₯ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±Π΅Π·
ΠΈΠ·Π»ΠΈΡΠ½ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠ³Π΄Π° Certbot ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, --pre-hook
ΠΈ --post-hook
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΈ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ Ρ
ΡΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
--deploy-hook
Π² ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
certbot ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ --deploy-hook / path / to / deploy-hook-script
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠΈΠΊΠΈ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Certbot
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
/ etc / letsencrypt
, Π»ΡΠ±ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ Π²
/ ΠΈ Ρ.Π΄. / letsencrypt / Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅-ΠΊΡΡΡΠΊΠΈ / Π΄ΠΎ
,
/ etc / letsencrypt / Renewal-hooks / deploy
ΠΈ
/ etc / letsencrypt / Renewal-hooks / post
Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΊΡΡΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Ρ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°.ΠΡΠΈ Ρ
ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ. (ΠΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ° Ρ
ΡΠΊΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΈΡ
ΠΈΠΌΠ΅Π½Π°Ρ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ.)
Π₯ΡΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°Ρ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΡΡΡΡ
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΅Ρ
Ρ
ΡΠΊΠΎΠ² Π² ΡΡΠΈΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
. ΠΠ΄Π½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΊ ΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Ρ
ΡΠΊ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΡΠ΅ΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ
ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ
ΡΠΊΠΎΠ² ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π³. Π²Π°Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΡΠ΅ΠΏ — ΡΡΠΎ ΠΏΡΡΡ ΠΊ
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² / etc / letsencrypt / Renewal-hooks / pre
), ΡΠ°ΠΉΠ» Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ
Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Certbot Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
Π² ΡΡΠΈΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
, Π²ΠΊΠ»ΡΡΠΈΠ² --no-directory-hooks
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Ρ
ΡΠΊΠ°Ρ
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ²
certbot - ΠΏΠΎΠΌΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°
Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ crontab
(ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΊ ΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π°
ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π³Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π½Π΅Π΄Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ).Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅,
Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ -q
ΠΈΠ»ΠΈ --quiet
quiet, ΡΡΠΎΠ±Ρ
ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄, ΠΊΡΠΎΠΌΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ,
- ΡΠ»Π°Π³ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½; ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ (Ρ), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ Π²ΠΎΠΏΡΠΎΡΠ° ΠΎ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠΈ, ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Π³ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°. (ΠΡΠ°
ΡΠΎΡΠΌΠ° Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π±ΡΠ΄Π΅Ρ
ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ, ΡΡΠΎ Π±ΡΡΡΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ.)
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ certbot
, Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ , ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
certbot ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ --rsa-key-size 4096
Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ
ΠΏΠΎΡΡΠΈ ΠΈΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ 4096-Π±ΠΈΡΠ½ΡΠΉ
ΠΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ RSA. ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠ΄Π»Π΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ
ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄
ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ),
ΡΡΠΎ certbot certonly
Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³ΠΎΠ² -d
.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ
Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π°Π³ -n
ΠΈΠ»ΠΈ --noninteractive
Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ (ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· cron).
certbot certonly -n -d example.com -d www.example.com
ΠΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π²
Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ°ΡΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π°
ΡΠ΅ΠΌ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ; Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎ www.
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²! Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅
ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ
ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½Ρ, Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ,
ΠΊΠΎΠΌΠ°Π½Π΄Π° certonly
ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ Π½Π° Π°Π΄ΡΠ΅Ρ
Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
ΡΠΊΠΎΡΠΎ ΠΈΡΡΠ΅ΡΠ΅Ρ.
Certbot ΠΏΡΠΈΠ»Π°Π³Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ, ΠΈ ΠΌΡ
ΠΏΡΠΈΠ½ΠΎΡΠΈΠΌ ΠΈΠ·Π²ΠΈΠ½Π΅Π½ΠΈΡ Π·Π° Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ ΠΏΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π²Π°ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
certbot Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΡΡΠ°ΡΡΡ Π²ΡΡ
ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 1, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠ΄Π°Π»Π°ΡΡ.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ certbot ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
ΡΡΠ°ΡΡΡ Π²ΡΡ
ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ 0, Π΅ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ --deploy-hook
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΡΡ Π²ΡΡ
ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 0
ΠΈ ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ
ΠΡΠΈ Π²ΡΠ΄Π°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Certbot ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Certbot.ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Certbot
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ½ΠΎΠ²Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ / etc / letsencrypt / Renewal / CERTNAME
.
ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ
Π·Π°Π΄Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ
ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Certbot
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ
ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ certbot Renew --dry-run
.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π² / etc / letsencrypt
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ ΠΈΡ
, ΡΠ°ΠΊ ΡΡΠΎ Certbot Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, ΠΈ ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
--deploy-hook
Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ / ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΉ Π²Π΅ΡΠ΅ΠΉ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ).
ΠΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ / etc / letsencrypt / archive / CERTNAME
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΊΠ°ΠΆΠΈΡΠ΅
ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ certbot update_symlinks
, ΡΡΠΎΠ±Ρ
ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² / etc / letsencrypt / live / CERTNAME
Π² Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ ΠΊΠΎΡΠΎΡΡΡ
Certbot ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΎΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅, Π±ΡΠ»ΠΈ
Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈΡ
Π² ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π·Π°ΡΠ΅ΠΌ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ
ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ,
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ certbot update_symlinks
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΡΠ°Π½Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ:
ΠΊΠ°ΡΠ°Π»ΠΎΠ³_Π°ΡΡ ΠΈΠ²Π° = /etc/letsencrypt/archive/example.com cert = /etc/letsencrypt/live/example.com/cert.pem Privkey = /etc/letsencrypt/live/example.com/privkey.pem ΡΠ΅ΠΏΠΎΡΠΊΠ° = /etc/letsencrypt/live/example.com/chain.pem fullchain = / etc / letsencrypt / live / example.com / fullchain.pem
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ:
mv /etc/letsencrypt/archive/example.com / home / user / me / certbot / example_archive sed -i, / etc / letsencrypt / archive / example.com, / home / user / me / certbot / example_archive, '/etc/letsencrypt/renewal/example.com.conf mv /etc/letsencrypt/live/example.com/*.pem / home / user / me / certbot / sed -i, / etc / letsencrypt / live / example.com, / home / user / me / certbot, g '/ etc / letsencrypt / Renewal / example.com.conf certbot update_symlinks
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ
ΠΏΠ°ΠΊΠ΅ΡΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². Π
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ,
Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, Π΅ΡΡΡ Π»ΠΈ ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ crontab (ΠΎΠ±ΡΡΠ½ΠΎ Π² / etc / crontab /
ΠΈ / etc / cron.* / *
ΠΈ
ΡΠ°ΠΉΠΌΠ΅ΡΡ systemd ( ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° systemctl
).
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ | ΠΠ΅ΡΡΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ | ΠΠ΅ΡΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ |
---|---|---|
CentOS | EPEL 7 | systemd |
Debian | ΡΠ°ΡΡΡΠΆΠΊΠ° | cron, systemd |
Debian | ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ / sid | cron, systemd |
Fedora | 26 | systemd |
Fedora | 27 | systemd |
RHEL | EPEL 7 | systemd |
Ubuntu | 17.10 | cron, systemd |
Ubuntu | certbot PPA | cron, systemd |
ΠΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Π²ΡΠ΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²
/ etc / letsencrypt / live / $ domain
. Π ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° SAN
Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ $ Π΄ΠΎΠΌΠ΅Π½
— ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π΄ΠΎΠΌΠ΅Π½, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π²
ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -d. ΠΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ (Π²Π΅Π±) ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ (ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅
ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ).ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ / etc / letsencrypt / live
Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
ΠΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ 0700
ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ
ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root. ΠΡΠ»ΠΈ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ
Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Certbot , ΡΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
chmod 0755 / etc / letsencrypt / {live, archive}
.
ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ root ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΡΡΠ΅Π½ΠΈΡ
ΡΠ°ΠΉΠ» Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ chgrp
ΠΈ chmod
, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠ³ ΡΠΈΡΠ°ΡΡ
0640
/ etc / letsencrypt / live / $ domain / privkey.pem
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
/ etc / letsencrypt / archive
ΠΈ / etc / letsencrypt / keys
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π°
/ etc / letsencrypt / live
ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
-
privkey.pem
ΠΠ°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅ ! ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»ΠΈΡΡ
ΡΡΠΎ Ρ ΠΊΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Certbot.Π’Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΡ
ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ΅ΠΉΡ — Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½ΡΠΆΠ΅Π½ Π΄ΠΎΡΡΡΠΏ
ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ SSL / TLS.ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Certbot 0.29.0, Π·Π°ΠΊΡΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ0600
. ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π³ΡΡΠΏΠΏΡ (gid)
ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠΈ.ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Apache Π΄Π»Ρ SSLCertificateKeyFile,
ΠΈ Nginx Π΄Π»Ρ ssl_certificate_key.-
fullchain.pem
ΠΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Π»ΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈΠ»ΠΈ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°).Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅,
Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ Π·Π²Π΅Π½ΡΡ.ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Apache> = 2.4.8 Π΄Π»Ρ SSLCertificateFile,
ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Nginx Π΄Π»Ρ ssl_certificate.-
cert.pem
ΠΈchain.pem
(ΡΠ΅ΠΆΠ΅) cert.pem
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ
chain.pem
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈΠ»ΠΈ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ²ΠΎΠΉ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ
ΡΠ΅ΡΠ²Π΅Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±Π° ΠΈΠ· Π½ΠΈΡ , ΠΈΠ½Π°ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Β«ΠΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΒ» Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.Apache <2.4.8 ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ SSLCertificateFile. ΠΈ SSLCertificateChainFile, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ OCSP Ρ Nginx> = 1.3.7,
chain.pem
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ssl_trusted_certificate
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² OCSP.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ PEM.ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ DER ΠΈΠ»ΠΈ PFX, ΡΠΎΠ³Π΄Π° Π²Ρ
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ openssl
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
--deploy-hook
, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠ΅.
Certbot ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Ρ
ΡΠΊΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅
Π² ΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π€Π»Π°Π³ΠΈ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΡΠΈΡ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²: --manual-auth-hook
ΠΈ - ΠΊΡΡΠΊ ΡΡΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
certbot certonly --manual --manual-auth-hook / ΠΏΡΡΡ / ΠΊ / http / Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ.sh --manual-cleanup-hook /path/to/http/cleanup.sh -d secure.example.com
ΠΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Authenticator.sh
, ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡ
ΡΡΠ΅Π½Π°ΡΠΈΠΉ cleanup.sh
. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ certbot ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅Π΄Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊ ΡΡΠΈΠΌ ΡΠΊΡΠΈΠΏΡΠ°ΠΌ:
-
CERTBOT_DOMAIN
: Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΉ Π΄ΠΎΠΌΠ΅Π½ -
CERTBOT_VALIDATION
: ΡΡΡΠΎΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ -
CERTBOT_TOKEN
: ΠΈΠΌΡ ΡΠ΅ΡΡΡΡΠ°, ΡΠ°ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° HTTP-01 (ΡΠΎΠ»ΡΠΊΠΎ HTTP-01) -
CERTBOT_REMAINING_CHALLENGES
: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° -
CERTBOT_ALL_DOMAINS
: ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ:
-
CERTBOT_AUTH_OUTPUT
: Π²ΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ°Π» Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ HTTP-01:
certbot certonly --manual --preferred-issues = http --manual-auth-hook / path / to / http / authentication.sh --manual-cleanup-hook /path/to/http/cleanup.sh -d secure.example.com
/path/to/http/authenticator.sh
#! / Bin / bash echo $ CERTBOT_VALIDATION> /var/www/htdocs/.well-known/acme-challenge/$CERTBOT_TOKEN
/path/to/http/cleanup.sh
#! / Bin / bash rm -f /var/www/htdocs/.well-known/acme-challenge/$CERTBOT_TOKEN
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ DNS-01 (Cloudflare API v4) (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡΡ)
certbot certonly --manual --preferred-issues = dns --manual-auth-hook / path / to / dns / authentication.sh --manual-cleanup-hook /path/to/dns/cleanup.sh -d secure.example.com
/path/to/dns/authenticator.sh
#! / Bin / bash # ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠ»ΡΡ API Ρ https://www.cloudflare.com/a/account/my-account API_KEY = "Π²Π°Ρ-API-ΠΊΠ»ΡΡ" EMAIL = "[email protected]" # Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ Π½ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·ΠΎΠ½Ρ DOMAIN = $ (expr match "$ CERTBOT_DOMAIN" '. * \. \ (. * \ .. * \)') # ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·ΠΎΠ½Ρ Cloudflare ZONE_EXTRA_PARAMS = "status = active & page = 1 & per_page = 20 & order = status & direction = desc & match = all" ZONE_ID = $ (curl -s -X GET "https: // api.cloudflare.com/client/v4/zones?name=$DOMAIN&$ZONE_EXTRA_PARAMS "\ -H "X-Auth-Email: $ EMAIL" \ -H "X-Auth-Key: $ API_KEY" \ -H "Content-Type: application / json" | python -c "import sys, json; print (json.load (sys.stdin) ['result'] [0] ['id'])Β») # Π‘ΠΎΠ·Π΄Π°ΡΡ Π·Π°ΠΏΠΈΡΡ TXT CREATE_DOMAIN = "_ acme-challenge. $ CERTBOT_DOMAIN" RECORD_ID = $ (curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ -H "X-Auth-Email: $ EMAIL" \ -H "X-Auth-Key: $ API_KEY" \ -H "Content-Type: application / json" \ --data '{"type": "TXT", "name": "'" $ CREATE_DOMAIN "'", "content": "'" $ CERTBOT_VALIDATION "'", "ttl": 120}' \ | python -c "import sys, json; print (json.load (sys.stdin) ['ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ'] ['ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ']) ") # Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π΅ΡΠ»ΠΈ [ ! -d / tmp / CERTBOT_ $ CERTBOT_DOMAIN]; Π·Π°ΡΠ΅ΠΌ mkdir -m 0700 / tmp / CERTBOT_ $ CERTBOT_DOMAIN ΡΠΈ echo $ ZONE_ID> / tmp / CERTBOT_ $ CERTBOT_DOMAIN / ZONE_ID echo $ RECORD_ID> / tmp / CERTBOT_ $ CERTBOT_DOMAIN / RECORD_ID # Π‘ΠΏΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΏΠ΅Π»ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡΡΡ Π½Π° DNS ΡΠΏΠ°ΡΡ 25
/path/to/dns/cleanup.sh
#! / Bin / bash # ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠ»ΡΡ API Ρ https://www.cloudflare.com/a/account/my-account API_KEY = "Π²Π°Ρ-API-ΠΊΠ»ΡΡ" EMAIL = "Π²Π°Ρ[email protected] " Π΅ΡΠ»ΠΈ [-f / tmp / CERTBOT_ $ CERTBOT_DOMAIN / ZONE_ID]; ΡΠΎΠ³Π΄Π° ZONE_ID = $ (cat / tmp / CERTBOT_ $ CERTBOT_DOMAIN / ZONE_ID) rm -f / tmp / CERTBOT_ $ CERTBOT_DOMAIN / ZONE_ID ΡΠΈ Π΅ΡΠ»ΠΈ [-f / tmp / CERTBOT_ $ CERTBOT_DOMAIN / RECORD_ID]; ΡΠΎΠ³Π΄Π° RECORD_ID = $ (cat / tmp / CERTBOT_ $ CERTBOT_DOMAIN / RECORD_ID) rm -f / tmp / CERTBOT_ $ CERTBOT_DOMAIN / RECORD_ID ΡΠΈ # Π£Π΄Π°Π»ΡΠ΅ΠΌ TXT-Π·Π°ΠΏΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· Π·ΠΎΠ½Ρ Π΅ΡΠ»ΠΈ [-n "$ {ZONE_ID}"]; ΡΠΎΠ³Π΄Π° Π΅ΡΠ»ΠΈ [-n "$ {RECORD_ID}"]; ΡΠΎΠ³Π΄Π° curl -s -X DELETE "https: // api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID "\ -H "X-Auth-Email: $ EMAIL" \ -H "X-Auth-Key: $ API_KEY" \ -H "Content-Type: application / json" ΡΠΈ ΡΠΈ
.