Π¨Π°Π³Π°Ρ ΠΏΠΎ ΠΏΡΡΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Ρ ΡΠ΅ΡΠΈΠ» Π΄ΠΎΠ±ΠΈΡΡ Π΄ΡΠ΅Π²Π½ΠΈΠΉ ΠΈ ΠΌΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ β Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌ, Π°Π΄ΠΌΠΈΠ½Π°ΠΌ, etc ) ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΊΠ°ΠΌΠΈ Π² ovirt’Π΅. Π ovirt Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΅Π³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ°: ΡΠ°ΠΌ Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, noVNC ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄ΠΈΡΠΊΠΎΠ².
ΠΠ½ΠΎΠΏΠΊΠΈ Β«Π‘Π΄Π΅Π»Π°ΡΡ ΠΠ°ΡΠΈΠ±ΠΈΡΡΒ» Ρ Π½Π΅ Π½Π°ΡΡΠ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ Ρ ΠΊΡΡΡΠΈΠ», ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ:
DISCLAIMER:
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΡΠ°ΡΡΠ½ΡΡ Π·ΠΎΠ½Π°Ρ lan, local, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π§ΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ Π·ΠΎΠ½Π΅ ΠΌΠ½Π΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Alex-GLuck-Awesome-Company.local, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Alex-GLuck-Awesome-Company.com.
ΠΡΠ»ΠΈ Π²Ρ Π±ΠΎΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ ΡΡΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ»ΠΎΠΌΠ°Π΅Ρ, ΡΠΎ Π·Π° ΡΠΊΡΠΎΠΌΠ½ΡΠ΅ 100 ΡΡΠ±Π»Π΅ΠΉ Π² Π³ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ Π΄Π»Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ aglac.com.
ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠ³ΠΎΠ΄Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π·ΠΎΠ½Π°Ρ :
1. Π£ Π²Π°Ρ Π²Π½ΡΡΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ: Π²ΠΏΠ½, ΠΎΠ±ΠΌΠ΅Π½ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ(seafile, nextcloud) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° ΡΠ°ΠΊΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΡΠΏ-Π»ΡΠΏ, ΠΈ ΠΎΡ MitM Π·Π°ΡΠΈΡΠ°ΡΡΡΡ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ(Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅Ρ).
ΠΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΠΎΡΠΈΡΠ° Ρ Π²Π°Ρ ΠΎΠ΄ΠΈΠ½ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π° ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π΄ΡΡΠ³ΠΎΠΉ, ΠΈ ΡΠ²ΡΠ·ΠΈ ΡΡΠΈ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, Π½Π° ΡΡΠΎ ΡΡΠ°ΡΡΡΡΡ Π½Π°ΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ². ΠΡ ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, ΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ.
2. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΠ΅Π½ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ PKI β ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, 100 ΡΡΠ±Π»Π΅ΠΉ Π² Π³ΠΎΠ΄ Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PKI ΠΎΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΡΠ΅Π½ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π»ΠΈΡ Π²ΠΎΠΉ ΠΎΠΊΡΠΏΠ°ΡΡ Π²ΡΠ΅ΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
3. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ°Π»ΠΊΠΈ Π² ΠΊΠΎΠ»ΡΡΠ° Π²Π°ΡΠΈΠΌ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ BYOD (ΠΏΡΠΈΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠΈ Π½ΠΎΡΡΡ, ΡΠ΅Π»Π΅ΡΠΎΠ½, ΠΏΠ»Π°Π½ΡΠ΅ΡΡ) ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠ½ΠΈ ΠΏΡΠΈΠ½ΠΎΡΡΡ ΠΌΠ°ΠΊΠΈ, Π»ΠΈΠ½ΡΠΊΡΡ, Π°Π½Π΄ΡΠΎΠΉΠ΄Ρ, IOS, Π²ΠΈΠ½Π΄Ρ β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π·ΠΎΠΎΠΏΠ°ΡΠΊ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
ΠΠΎ Π²ΡΡΠΌ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈ Π±Π°Π½ΠΊΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ½ΡΡΠΏΡΠ°ΠΉΠ·Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠΎΡΠ²ΡΠΈΠ΅ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠΆΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ².
ΠΠ»Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΠ΅Π½ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ ΠΈΡ CA ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ(Π³ΡΠ³Π»ΠΈΡΡ Β«root signing serviceΒ»).
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ³ΠΎΠ΄Π½Π΅ΠΉ(ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π» Π²Π°ΠΌ), Π½ΠΎ ΡΡΠ°ΡΡΡ Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
Π‘ΡΡΡ, Π΄Π° Π΄Π΅Π»ΠΎ…
ΠΠΠΠΠΠΠΠ! ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ CA ΠΎΡ Let’s Encrypt Π² ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ovirt’Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ!
ΠΠ΅ΡΠ²ΠΎΠ΅ Π½Π° ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΠ²ΠΈΡΡΠ° Π²ΡΡΡΠ°Π²Π»ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, Ρ.ΠΊ. Π² ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°, Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ³ΡΠΎΠ·Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°ΡΡ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π°ΡΠ΅ΠΌ Π±Π°ΡΡΠΈΠΎΠ½-Ρ ΠΎΡΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ ΠΊΠ»ΡΡ Π½Π° Π½Π°Ρ Ρ ΠΎΡΡ Ρ ovirt-engine.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ΅Π³ΠΎ Π±Π°ΡΡΠΈΠΎΠ½-Ρ ΠΎΡΡΠ° Π² Π΄Π½Ρ Ρ Π½Π°ΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ²ΠΈΡΡΠ° ovirtengine.example.com, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ certbot ΠΈ nginx Ρ ΠΎΡΡΠ°Π²Π»Ρ Π·Π° ΠΊΠ°Π΄ΡΠΎΠΌ(ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° Ρ Π°Π±ΡΠ΅ ΡΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ).
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π½Π΄ΠΆΠΈΠ½ΠΊΡ Π²Π΅ΡΡΠΈΠΈ >=1.15.7
/etc/nginx/conf.d/default.conf
server {
server_name _;
listen 80 default_server;
location /robots.txt { alias /usr/share/nginx/html/robots.txt; }
location /.well-known {
root /usr/share/nginx/html;
}
location / {
return 444;
}
}
server {
server_name _;
listen 443 ssl http2 default_server;
location /robots.txt { alias /usr/share/nginx/html/robots.txt; }
location /.well-known {
root /usr/share/nginx/html;
}
ssl_certificate /etc/nginx/ssl/$ssl_server_name/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/$ssl_server_name/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
# ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ OCSP-ΠΎΡΠ²Π΅ΡΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΌΠ΅Π½ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
location / {
return 444;
}
}
ΠΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ ΠΊΠ»ΡΡ:
certbot certonly --nginx -d ovirtengine.example.com
ΠΡΡ ΠΈΠ²ΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ ΠΊΠ»ΡΡ:
tar Phczf /tmp/ovirtengine.example.com.tgz /etc/letsencrypt/live/ovirtengine.example.com
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ Ρ Π±Π°ΡΡΠΈΠΎΠ½-Ρ ΠΎΡΡΠ° Π°ΡΡ ΠΈΠ², Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π° Π½Π°Ρ ΠΎΠ²ΠΈΡΡ-Π΅Π½ΠΆΠΈΠ½:
scp bastion-host:/tmp/ovirtengine.example.com.tgz /tmp/
scp /tmp/ovirtengine.example.com.tgz ovirtengine.example.com:/
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ΅Π»ΠΈ
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π½Π°Ρ Π°ΡΡ ΠΈΠ² ΠΈ ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΈ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
tar Pxzf /ovirtengine.example.com.tgz && rm -f ovirtengine.example.com.tgz
mkdir -p /etc/letsencrypt/live
ln -f -s /etc/letsencrypt/live /etc/pki/letsencrypt
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ pki Π² ΠΎΠ²ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² java(openjdk):
cat << EOF > /etc/ovirt-engine/engine.conf.d/99-setup-pki.conf
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
EOF
ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ CA ΠΎΡ let’s encrypt’Π° Π² der ΡΠΎΡΠΌΠ°Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² java trust store ΠΎΠ²ΠΈΡΡΠ° (ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² java):
openssl x509 -outform der -in /etc/pki/letsencrypt/ovirtengine.example.com/chain.pem -out /tmp/ovirtengine.example.com.chain.der
keytool -import -alias "Let's Encrypt Authority X3" -file /tmp/ovirtengine.example.com.chain.der -keystore /etc/pki/ovirt-engine/.truststore -storepass $(grep '^ENGINE_PKI_TRUST_STORE_PASSWORD' /etc/ovirt-engine/engine.conf.d/10-setup-pki.conf | cut -f 2 -d '"')
rm -f /tmp/ovirtengine.example.com.chain.der
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ SSL Π΄Π»Ρ apache, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΎΠ² ΠΈ ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ CA, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ CA Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ):
sed -r -i 's|^(SSLCACertificateFile.*)|#1|g' /etc/httpd/conf.d/ssl.conf
sed -r -i '0,/(^#?SSLCACertificateFile.*)/ s//1nOptions FollowSymlinks/' /etc/httpd/conf.d/ssl.conf
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π±Π΅ΠΊΠ°ΠΏΠΈΡΡΠ΅ΠΌ Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· PKI ovirt’Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ°ΠΉΠ»Ρ ΠΎΡ Let’s Encrypt:
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/fullchain.pem /etc/pki/ovirt-engine/apache-chain.pem
services=( 'apache' 'imageio-proxy' 'websocket-proxy' )
for i in "${services[@]}"; do
cp /etc/pki/ovirt-engine/certs/$i.cer{,."$( date +%F )".bak}
cp /etc/pki/ovirt-engine/keys/$i.key.nopass{,."$( date +%F )".bak}
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/privkey.pem /etc/pki/ovirt-engine/keys/$i.key.nopass
ln -f -s /etc/pki/letsencrypt/ovirtengine.example.com/cert.pem /etc/pki/ovirt-engine/certs/{apache,imageio-proxy,websocket-proxy}.cer
done
ΠΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ SElinux ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π½Π° ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π°ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ (httpd, ovirt-engine, ovirt-imageio-proxy, ovirt-websocket-proxy):
restorecon -Rv /etc/pki
systemctl restart httpd ovirt-engine ovirt-imageio-proxy ovirt-websocket-proxy
httpd β Π²Π΅Π± ΡΠ΅ΡΠ²Π΅Ρ apache
ovirt-engine β Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ovirt
ovirt-imageio-proxy β Π΄Π΅ΠΌΠΎΠ½ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄ΠΈΡΠΊΠΎΠ²
ovirt-websocket-proxy β ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ noVNC ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
ΠΡΡ Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° Π²Π΅ΡΡΠΈΠΈ ΠΎΠ²ΠΈΡΡΠ° 4.2.
ΠΠ²ΡΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π½Π° ovirt
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°ΡΡΠΈΠΎΠ½-Ρ ΠΎΡΡΠΎΠΌ ΠΈ ΠΎΠ²ΠΈΡΡΠΎΠΌ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ, Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²ΡΠ΄Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 3 ΠΌΠ΅ΡΡΡΠ°. ΠΠΎΡ ΡΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Ρ ΠΌΠ΅Π½Ρ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π°Π½ΡΠΈΠ±Π» ΠΏΠ»Π΅ΠΉΠ±ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° foreman Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² 5 ΡΡΡΠ° ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΎΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊ Π·Π°Ρ ΠΎΠ΄ΠΈΡ Π½Π° ΠΎΠ²ΠΈΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΈ Π΅ΡΠ»ΠΈ Π΄ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 5 Π΄Π½Π΅ΠΉ, ΠΈΠ΄ΡΡ Π½Π° Π±Π°ΡΡΠΈΠΎΠ½-Ρ ΠΎΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΎΠ½ Π°ΡΡ ΠΈΠ²ΠΈΡΡΠ΅Ρ ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ Π½Π° Ρ ΠΎΡΡ ΡΠΎΡΠΌΠ°Π½Π° ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΡΠ΅Ρ Π½Π° Ρ ΠΎΡΡ ΠΎΠ²ΠΈΡΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ SElinux ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π½Π° ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π°ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com