ื•ื•ื™ ืฆื• ืจืขื›ื˜ ืงืึทื ืคื™ื’ื™ืขืจ SNI ืื™ืŸ Zimbra OSE?

ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ 21 ื™ืึธืจื”ื•ื ื“ืขืจื˜, ืึท ืžื™ื˜ืœ ืึทื–ืึท ื•ื•ื™ IPv4 ืึทื“ืจืขืกื– ืื™ื– ืื•ื™ืฃ ื“ืขืจ ื’ืจืขื ืขืฅ ืคื•ืŸ ื™ื’ื–ืึธืกื˜ืฉืึทืŸ. ืฆื•ืจื™ืง ืื™ืŸ 2011, ื™ืึทื ืึท ืึทืœืึทืงื™ื™ื˜ื™ื“ ื“ื™ ืœืขืฆื˜ืข ืคื™ื ืฃ ืจื•ืขืŸ / 8 ื‘ืœืึทืงืก ืคื•ืŸ ื–ื™ื™ืŸ ืึทื“ืจืขืก ืคึผืœืึทืฅ ืฆื• ืจืขื’ื™ืึธื ืึทืœ ืื™ื ื˜ืขืจื ืขื˜ ืจืขื’ื™ืกื˜ืจืึทื˜ืึธืจืก, ืื•ืŸ ืฉื•ื™ืŸ ืื™ืŸ 2017 ื–ื™ื™ ื’ืขืœืืคืŸ ืื•ื™ืก ืคื•ืŸ ืึทื“ืจืขืกืขืก. ื“ืขืจ ืขื ื˜ืคืขืจ ืฆื• ื“ื™ ืงืึทื˜ืึทืกื˜ืจืึธืคื™ืง ื“ื•ื—ืง ืคื•ืŸ IPv4 ืึทื“ืจืขืกืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ื™ืžืขืจื“ื–ืฉืึทื ืก ืคื•ืŸ ื“ื™ IPv6 ืคึผืจืึธื˜ืึธืงืึธืœ, ืึธื‘ืขืจ ืื•ื™ืš ื“ื™ SNI ื˜ืขื›ื ืึธืœืึธื’ื™ืข, ื•ื•ืึธืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื‘ืึทืœืขื‘ืึธืก ืึท ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ื•ื•ืขื‘ืกื™ื˜ืขืก ืื•ื™ืฃ ืึท ืื™ื™ืŸ IPv4 ืึทื“ืจืขืก. ื“ื™ ืขืกืึทื ืก ืคื•ืŸ SNI ืื™ื– ืึทื– ื“ืขื ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืึทืœืึทื•ื– ืงืœื™ื™ืึทื ืฅ, ื‘ืขืฉืึทืก ื“ื™ ื›ืึทื ื“ืฉื™ื™ืง ืคึผืจืึธืฆืขืก, ืฆื• ื–ืึธื’ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืคึผืœืึทืฅ ืžื™ื˜ ื•ื•ืึธืก ืขืจ ื•ื•ื™ืœ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ. ื“ืึธืก ืึทืœืึทื•ื– ื“ื™ ืกืขืจื•ื•ืขืจ ืฆื• ืงืจืึธื ืงื™ื™ืคืœ ืกืขืจื˜ื™ืคื™ืงืึทืฅ, ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– ืงื™ื™ืคืœ ื“ืึธื•ืžื™ื™ื ื– ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืื™ื™ืŸ IP ืึทื“ืจืขืก. SNI ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืื™ื– ื’ืขื•ื•ืืจืŸ ืกืคึผืขืฆื™ืขืœ ืคืึธืœืงืก ืฆื•ื•ื™ืฉืŸ ื’ืขืฉืขืคื˜ ืกืึทืึทืก ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื–, ื•ื•ืึธืก ื”ืึธื‘ืŸ ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ื‘ืึทืœืขื‘ืึธืก ืึท ื›ึผืžืขื˜ ืึทื ืœื™ืžืึทื˜ืึทื“ ื ื•ืžืขืจ ืคื•ืŸ ื“ืึธื•ืžื™ื™ื ื– ืึธืŸ ืึทื›ื˜ื•ื ื’ ืฆื• ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ IPv4 ืึทื“ืจืขืกืขืก ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื“ืขื. ืœืึธืžื™ืจ ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ SNI ืฉื˜ื™ืฆืŸ ืื™ืŸ Zimbra Collaboration Suite Open-Source ืึทื“ื™ืฉืึทืŸ.

ื•ื•ื™ ืฆื• ืจืขื›ื˜ ืงืึทื ืคื™ื’ื™ืขืจ SNI ืื™ืŸ Zimbra OSE?

SNI ืึทืจื‘ืขื˜ ืื™ืŸ ืึทืœืข ืงืจืึทื ื˜ ืื•ืŸ ื’ืขืฉื˜ื™ืฆื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Zimbra OSE. ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ Zimbra Open-Source ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ืึท ืžืึทืœื˜ื™-ืกืขืจื•ื•ืขืจ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืึทืœืข ื“ื™ ืกื˜ืขืคึผืก ืื•ื ื˜ืŸ ืื•ื™ืฃ ืึท ื ืึธื“ืข ืžื™ื˜ ื“ื™ Zimbra Proxy ืกืขืจื•ื•ืขืจ ืื™ื ืกื˜ืึทืœื™ืจืŸ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ื•ื•ืึธืก ืจื™ื›ื˜ืŸ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ + ืฉืœื™ืกืœ ืคึผืขืจื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื˜ืจืึทืกื˜ื™ื“ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ื™ืŸ CA ืคึฟืึทืจ ื™ืขื“ืขืจ ืคื•ืŸ ื“ื™ ื“ืึธื•ืžื™ื™ื ื– ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื‘ืึทืœืขื‘ืึธืก ืื•ื™ืฃ ื“ื™ื™ืŸ IPv4 ืึทื“ืจืขืก. ื‘ื™ื˜ืข ื˜ืึธืŸ ืึทื– ื“ื™ ื’ืจื•ื ื˜ ืคื•ืŸ ื“ื™ ื•ื•ืึทืกื˜ ืžืขืจื”ื™ื™ึทื˜ ืคื•ืŸ ืขืจืจืึธืจืก ื•ื•ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ SNI ืื™ืŸ Zimbra OSE ืื™ื– ืคึผื•ื ืงื˜ ืคืึทืœืฉ ื˜ืขืงืขืก ืžื™ื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ. ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืื™ืจ ืฆื• ืงืขืจืคืึทืœื™ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืœืฅ ืื™ื™ื“ืขืจ ืื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ื–ื™ื™ ื’ืœื™ื™ึทืš.

ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืื™ืŸ ืกื“ืจ ืคึฟืึทืจ SNI ืฆื• ืึทืจื‘ืขื˜ืŸ ื ืึธืจืžืึทืœื™, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทืจื™ื™ึทืŸ ื“ื™ ื‘ืึทืคึฟืขืœ zmprov mcf zimbraReverseProxySNIENabled TRUE ืื•ื™ืฃ ื“ื™ Zimbra ืคืจืืงืกื™ ื ืึธื“ืข, ืื•ืŸ ื“ืขืžืึธืœื˜ ืจื™ืกื˜ืึทืจื˜ ื“ื™ ืคึผืจืึธืงืกื™ ื“ื™ื ืกื˜ ื ื™ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœ zmproxyctl ืจื™ืกื˜ืึทืจื˜.

ืžื™ืจ ื•ื•ืขืœืŸ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ืคืขืœื“ ื ืึธืžืขืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ื“ื™ ืคืขืœื“ company.ru ืื•ืŸ, ื ืึธืš ื“ื™ ืคืขืœื“ ืื™ื– ืฉื•ื™ืŸ ื‘ืืฉืืคืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืฉืœื™ืกืŸ ืื•ื™ืฃ ื“ื™ Zimbra ื•ื•ื™ืจื˜ื•ืึทืœ ื‘ืึทืœืขื‘ืึธืก ื ืึธืžืขืŸ ืื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ IP ืึทื“ืจืขืก. ื‘ื™ื˜ืข ื˜ืึธืŸ ืึทื– ื“ื™ Zimbra ื•ื•ื™ืจื˜ื•ืขืœ ื‘ืึทืœืขื‘ืึธืก ื ืึธืžืขืŸ ืžื•ื–ืŸ ื’ืœื™ื™ึทื›ืŸ ื“ืขื ื ืึธืžืขืŸ ื•ื•ืึธืก ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืžื•ื–ืŸ ืึทืจื™ื™ึทืŸ ืื™ืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ืฆื• ืึทืงืกืขืก ื“ื™ ืคืขืœื“, ืื•ืŸ ืื•ื™ืš ื’ืœื™ื™ึทื›ืŸ ื“ืขื ื ืึธืžืขืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœืึธืžื™ืจ ื ืขืžืขืŸ Zimbra ื•ื•ื™ ื“ืขืจ ื•ื•ื™ืจื˜ื•ืขืœ ื‘ืึทืœืขื‘ืึธืก ื ืึธืžืขืŸ mail.company.ru, ืื•ืŸ ื•ื•ื™ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ IPv4 ืึทื“ืจืขืก ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ืึทื“ืจืขืก 1.2.3.4.

ื ืึธืš ื“ืขื, ื ืึธืจ ืึทืจื™ื™ึทืŸ ื“ื™ ื‘ืึทืคึฟืขืœ zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4ืฆื• ื‘ื™ื ื“ืŸ ื“ื™ Zimbra ื•ื•ื™ืจื˜ื•ืขืœ ื‘ืึทืœืขื‘ืึธืก ืฆื• ืึท ื•ื•ื™ืจื˜ื•ืึทืœ IP ืึทื“ืจืขืก. ื‘ื™ื˜ืข ื˜ืึธืŸ ืึทื– ืื•ื™ื‘ ื“ืขืจ ืกืขืจื•ื•ืขืจ ืื™ื– ืœื™ื’ืŸ ื”ื™ื ื˜ืขืจ ืึท NAT ืึธื“ืขืจ ืคื™ื™ืจื•ื•ืึทืœ, ืื™ืจ ืžื•ื–ืŸ ืขื ืฉื•ืจ ืึทื– ืึทืœืข ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ืคืขืœื“ ื’ื™ื™ืŸ ืฆื• ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื, ืื•ืŸ ื ื™ืฉื˜ ืฆื• ื–ื™ื™ืŸ ืึทื“ืจืขืก ืื•ื™ืฃ ื“ื™ ื”ื™ื’ืข ื ืขืฅ.

ื ืึธืš ืึทืœืฅ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ืฆื•ื’ืจื™ื™ื˜ืŸ ื“ื™ ืคืขืœื“ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืคึฟืึทืจ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’, ืื•ืŸ ื“ืขืžืึธืœื˜ ื™ื ืกื˜ืึทืœื™ืจืŸ ื–ื™ื™.

ืื•ื™ื‘ ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคื•ืŸ ืึท ืคืขืœื“ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืขื ื“ื™ืงื˜ ืจื™ื›ื˜ื™ืง, ืื™ืจ ื–ืึธืœ ื”ืึธื‘ืŸ ื“ืจื™ื™ ื˜ืขืงืขืก ืžื™ื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ: ืฆื•ื•ื™ื™ ืคื•ืŸ ื–ื™ื™ ื–ืขื ืขืŸ ืงื™ื™ื˜ืŸ ืคื•ืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืคื•ืŸ ื“ื™ื™ืŸ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜, ืื•ืŸ ืื™ื™ื ืขืจ ืื™ื– ืึท ื“ื™ืจืขืงื˜ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืคึฟืึทืจ ื“ื™ ืคืขืœื“. ืื™ืŸ ื“ืขืจืฆื•, ืื™ืจ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ืึท ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืฉืœื™ืกืœ ื•ื•ืึธืก ืื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. ืฉืึทืคึฟืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื˜ืขืงืข /tmp/company.ru ืื•ืŸ ืฉื˜ืขืœืŸ ืึทืœืข ื™ื’ื–ื™ืกื˜ื™ื ื’ ื˜ืขืงืขืก ืžื™ื˜ ืฉืœื™ืกืœืขืŸ ืื•ืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ื“ืึธืจื˜. ื“ืขืจ ืกื•ืฃ ืจืขื–ื•ืœื˜ืึทื˜ ื–ืึธืœ ื–ื™ื™ืŸ ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก:

ls /tmp/company.ru
company.ru.key
 company.ru.crt
 company.ru.root.crt
 company.ru.intermediate.crt

ื ืึธืš ื“ืขื, ืžื™ืจ ื•ื•ืขืœืŸ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืงื™ื™ื˜ืŸ ืื™ืŸ ืื™ื™ืŸ ื˜ืขืงืข ื ื™ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœ cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืึทืœืฅ ืื™ื– ืื™ืŸ ืกื“ืจ ืžื™ื˜ ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ื ื™ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœ /opt/zimbra/bin/zmcertmgr verifycrt comm /tmp/company.ru/company.ru.key /tmp/company.ru/company.ru.crt /tmp/company.ru/company.ru_ca.crt. ื ืึธืš ื“ื™ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ืฉืœื™ืกืœ ืื™ื– ื’ืขืจืึธื˜ืŸ, ืื™ืจ ืงืขื ืขืŸ ืึธื ื”ื™ื™ื‘ืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ื–ื™ื™.

ืื™ืŸ ืกื“ืจ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ื“ื™ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’, ืžื™ืจ ื•ื•ืขืœืŸ ืขืจืฉื˜ืขืจ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ืคืขืœื“ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื•ืŸ ื˜ืจืึทืกื˜ื™ื“ ืงื™ื™ื˜ืŸ ืคื•ืŸ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืืจื™ื˜ืขื˜ืŸ ืื™ืŸ ืื™ื™ืŸ ื˜ืขืงืข. ื“ืึธืก ืงืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืžื™ื˜ ืื™ื™ืŸ ื‘ืึทืคึฟืขืœ ื•ื•ื™ cat company.ru.crt company.ru_ca.crt >> company.ru.bundle. ื ืึธืš ื“ืขื, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืœืข ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ื“ื™ ืฉืœื™ืกืœ ืฆื• LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.keyืื•ืŸ ื“ืขืžืึธืœื˜ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ื ื™ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœ /opt/zimbra/libexec/zmdomaincertmgr ื“ื™ืคึผืœื•ื™ืงืจืฅ. ื ืึธืš ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’, ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ื“ืขืจ ืฉืœื™ืกืœ ืฆื• ื“ื™ company.ru ืคืขืœื“ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื“ืขืจ ื˜ืขืงืข /opt/zimbra/conf/domaincerts/company.ru

ื“ื•ืจืš ืจื™ืคึผื™ื˜ื™ื ื’ ื“ื™ ืกื˜ืขืคึผืก ื ื™ืฆืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคืขืœื“ ื ืขืžืขืŸ ืึธื‘ืขืจ ื“ื™ ื–ืขืœื‘ืข IP ืึทื“ืจืขืก, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื‘ืึทืœืขื‘ืึธืก ืขื˜ืœืขื›ืข ื”ื•ื ื“ืขืจื˜ ื“ืึธื•ืžื™ื™ื ื– ืื•ื™ืฃ ืึท ืื™ื™ืŸ IPv4 ืึทื“ืจืขืก. ืื™ืŸ ื“ืขื ืคืึทืœ, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืคื•ืŸ ืึท ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ื™ืฉื•ื™ื ื’ ืกืขื ื˜ืขืจืก ืึธืŸ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ. ืื™ืจ ืงืขื ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืจื™ื›ื˜ื™ืง ืคื•ืŸ ืึทืœืข ืึทืงืฉืึทื ื– ื’ืขื˜ืืŸ ืื™ืŸ ืงื™ื™ืŸ ื‘ืœืขื˜ืขืจืขืจ, โ€‹โ€‹ื•ื•ื• ื™ืขื“ืขืจ ื•ื•ื™ืจื˜ื•ืึทืœ ื‘ืึทืœืขื‘ืึธืก ื ืึธืžืขืŸ ื–ืึธืœ ื•ื•ื™ื™ึทื–ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืกืœ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. 

ืคึฟืึทืจ ืึทืœืข ืคึฟืจืื’ืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• Zextras Suite, ืื™ืจ ืงืขื ื˜ ืงืึธื ื˜ืึทืงื˜ Zextras ืคืืจืฉื˜ื™ื™ืขืจ Ekaterina Triandafilidi ื“ื•ืจืš E- ื‘ืจื™ื•ื• [ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’