เป„เบ›เบชเบนเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบ SSL

เป€เบฅเบทเป‰เบญเบเป†เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ SSL. เบ‚เปเปƒเบซเป‰เบˆเบทเปˆเบˆเปเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ).

  • เบŠเบญเบเบซเบฒเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ (เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบŠเบทเป‰ SSL).
  • เบชเป‰เบฒเบ‡ CSR.
  • เบชเบปเปˆเบ‡เปƒเบซเป‰เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
  • เบขเบทเบ™เบขเบฑเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™.
  • เป„เบ”เป‰เบฎเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™.
  • เบ›เปˆเบฝเบ™เปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เป€เบ›เบฑเบ™เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (เบ—เบฒเบ‡เป€เบฅเบทเบญเบ). เบ•เบปเบงเบขเปˆเบฒเบ‡, เบˆเบฒเบ pem เบเบฑเบš PKCS #12.
  • เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป€เบŠเบตเบšเป€เบงเบต.

เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป„เบง, เบšเปเปˆเบชเบฑเบšเบชเบปเบ™ เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบกเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบชเบดเบšเป‚เบ„เบ‡เบเบฒเบ™. เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบชเบฒเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก? เบ„เบฅเบฒเบชเบชเบดเบ dev - staging - เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰ delve เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบซเบฒเปเบฅเบฐเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบฎเบฑเบเบชเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. เบšเบปเบ”เบ„เบงเบฒเบกเบˆเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบšเบฑเบ™เบซเบฒเปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เป‰เบฒเบ‡เบซเป‰เบญเบ‡.

เปƒเบซเป‰เบ‚เป‰เบญเบเบˆเบญเบ‡เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ: เบ„เบงเบฒเบกเบŠเปˆเบฝเบงเบŠเบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ .net, เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, IIS เปเบฅเบฐเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš Windows. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบนเบเบ„เป‰เบฒ ACME เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™เบเบฑเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบเบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Windows.

เบชเปเบฒเบฅเบฑเบšเปƒเบœเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡

เบšเปเบฅเบดเบชเบฑเบ” K เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เป‚เบ”เบเบœเบนเป‰เบ‚เบฝเบ™. URL (เบ•เบปเบงเบขเปˆเบฒเบ‡): company.tld

เป‚เบ„เบ‡เบเบฒเบ™ X เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ‚เป‰เบญเบเป„เบ”เป‰เบชเบฐเบซเบผเบธเบšเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเบชเบนเบ‡เบชเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เบกเบตเบชเบตเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก: dev, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, staging เปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”. Dev เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบกเปˆเบ™เบขเบนเปˆเบ‚เป‰เบฒเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ.

เบฅเบฑเบเบชเบฐเบ™เบฐเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบกเบตเบˆเปเบฒเบ™เบงเบ™เป‚เบกเบ”เบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเป€เบ›เบฑเบ™เป‚เบ”เป€เบกเบ™เบเปˆเบญเบ.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฎเบนเบšเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

Dev
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš
Staging
เบเบฒเบ™เบœเบฐเบฅเบดเบ”

projectX.dev.company.tld
projectX.test.company.tld
staging.projectX.tld
projectX.tld

module1.projectX.dev.company.tld
module1.projectX.test.company.tld
module1.staging.projectX.tld
module1.projectX.tld

module2.projectX.dev.company.tld
module2.projectX.test.company.tld
module2.staging.projectX.tld
module2.projectX.tld

...
...
...
...

moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
moduleN.staging.projectX.tld
moduleN.projectX.tld

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”, เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบŠเบทเป‰เบกเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบšเปเปˆเบกเบตเบ„เปเบฒเบ–เบฒเบกเปƒเบ”เป†เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เปเบ•เปˆเบกเบฑเบ™เบเบงเบกเป€เบญเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบ”เบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™เบเปˆเบญเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบกเบตเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบชเปเบฒเบฅเบฑเบš *.projectX.tld, เบกเบฑเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš staging.projectX.tld, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš module1.staging.projectX.tld. เปเบ•เปˆเบšเบฒเบ‡เบ—เบตเบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบŠเบทเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบซเบ™เบถเปˆเบ‡. เปเบฅเบฐ, เปเบ™เปˆเบ™เบญเบ™, เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

เป€เบซเบ”เบœเบปเบ™เบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™เบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

  • เป€เบกเบทเปˆเบญเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰ Google เบชเบฐเป€เปœเบตเปƒเบซเป‰เบซเบผเบธเบ”เป„เบฅเบเบฐเป€เบงเบฅเบฒเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ SSL. เบกเบตเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.
  • เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบญเบเปเบฅเบฐเบฎเบฑเบเบชเบฒ SSL เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบšเปเบฅเบดเบชเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”.
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบนเบ™เบเบฒเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, เป€เบŠเบดเปˆเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป‚เบ”เป€เบกเบ™เป‚เบ”เบเปƒเบŠเป‰ DNS เปเบฅเบฐเบเบฒเบ™เบ•เปเปˆเบญเบฒเบเบธเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบกเบฒ, เปเบฅเบฐเบเบฑเบ‡เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, CNAME เบขเบนเปˆเปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™ / เบœเบนเป‰เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบฒเบเบเปˆเบงเบฒเปƒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.
  • เปเบฅเป‰เบง, เบชเบธเบ”เบ—เป‰เบฒเบ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบ›เบฐเป‚เบซเบเบเบ—เบตเปˆเบงเปˆเบฒ "เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒเบšเปเปˆเบกเบต" เป€เบซเบกเบฒเบฐเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

เบเบฒเบ™เป€เบฅเบทเบญเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ SSL เปเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบเบฐเบเบฝเบก

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ SSL เบŸเบฃเบต, cloudflare เปเบฅเบฐ letsencrypt เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ. DNS เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰ (เปเบฅเบฐเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†) เปเบกเปˆเบ™เป‚เบฎเบ”เป‚เบ”เบ cloudflare, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เป€เบ›เบฑเบ™เปเบŸเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ letsencrypt.
เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ SSL เบ—เบตเปˆเป€เบ›เบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบขเบทเบ™เบขเบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ DNS เบšเบฒเบ‡เบญเบฑเบ™ (TXT เบซเบผเบท CNAME), เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบขเบทเบ™เบขเบฑเบ™เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบญเบญเบเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. Linux เบกเบตโ€‹เบœเบปเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ” - เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™ (เบซเบผเบทเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ DNS) เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰. เบชเปเบฒเบฅเบฑเบš Windows เบˆเบฒเบ เบžเบปเบšโ€‹เปเบฅเบฐโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ ACME เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡ WinACME.

เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบชเปเบฒเบฅเบฑเบšเป‚เบ”เป€เบกเบ™เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เปƒเบซเป‰เบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™:

เป„เบ›เบชเบนเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบ SSL

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบšเบปเบ”เบชเบฐเบซเบผเบธเบšเบชเบธเบ”เบ—เป‰เบฒเบ, เบ„เบท, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบญเบเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ wildcard:

  1. เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ DNS เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ (เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”)
  2. เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ DNS เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ acme-dns (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš เบ—เบตเปˆเบ™เบตเป‰.
  3. เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ DNS เป‚เบ”เบเปƒเบŠเป‰เบชเบฐเบ„เบดเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡ (เบ„เป‰เบฒเบเบเบฑเบš plugin cloudflare เบชเปเบฒเบฅเบฑเบš certbot).

เบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ”, เบˆเบธเบ”เบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบก, เปเบ•เปˆเบงเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ DNS เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰? เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›. เปเบ•เปˆเบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบšเบฑเบ™เบ—เบถเบ CNAME, เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เบธเบเบ„เบปเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบ‚เบปเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบขเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบˆเบธเบ” 2 เปเบฅเบฐเป„เบ›เบ—เบตเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ACME-DNS เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบŠเบตเบšเป€เบงเบต ACME-DNS เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบญเบเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เป‰เบญเบเบชเป‰เบฒเบ‡เป‚เบ”เป€เบกเบ™ 2nd.pp.ua, เปเบฅเบฐเบˆเบฐเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบš เป€เบžเบทเปˆเบญเปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ NS เปเบฅเบฐ A เบชเปเบฒเบฅเบฑเบšเป‚เบ”เป€เบกเบ™เบ‚เบญเบ‡เบกเบฑเบ™. เปเบฅเบฐเบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ‚เป‰เบญเบเบžเบปเบšเปเบกเปˆเบ™เบงเปˆเบฒ cloudflare (เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเปƒเบ™เป‚เบซเบกเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŸเบฃเบต) เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ NS เปเบฅเบฐ A เบชเปเบฒเบฅเบฑเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เบšเปเปˆเปเบกเปˆเบ™เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒ, เปเบ•เปˆเปƒเบ™เบ„เบงเบฒเบกเบœเบนเบเบžเบฑเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบญเบšเบงเปˆเบฒเบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰. เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ, เปƒเบซเป‰เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบชเบญเบ‡เบญเบฑเบ™:

acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.

เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เปเบเป‰เป„เบ‚ acmens.2nd.pp.ua.

$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data

เปเบ•เปˆเบงเปˆเบฒ acme.2nd.pp.ua เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบ DNS เบ—เบตเปˆโ€‹เปƒเบซเป‰โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบกเบฑเบ™โ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เปเบฅเปˆเบ™โ€‹.

เบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เปเบฅเบฐเป€เบ›เบตเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ACME-DNS. เบกเบฑเบ™เบˆเบฐเบ”เปเบฒเบฅเบปเบ‡เบŠเบตเบงเบดเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ubuntu เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ docker เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เปเบ•เปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบกเบฑเบ™เป„เบ”เป‰เบ—เบธเบเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบต golang. Windows เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบก, เปเบ•เปˆเบ‚เป‰เบญเบเบเบฑเบ‡เบกเบฑเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Linux.

เบชเป‰เบฒเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™:

$ mkdir config
$ mkdir data
$ touch config/config.cfg

เปƒเบซเป‰เปƒเบŠเป‰ vim เบเบฑเบšเบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบฑเบ เปเบฅเบฐเบงเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบปเบ‡เปƒเบ™ config.cfg เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบชเปˆเบงเบ™เบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐ api:

[general]
listen = "0.0.0.0:53"
protocol = "both"
domain = "acme.2nd.pp.ua"
nsname = "acmens.2nd.pp.ua" 
nsadmin = "admin.2nd.pp.ua" 
records = 
    "acme.2nd.pp.ua. A 35.237.128.147",
    "acme.2nd.pp.ua. NS acmens.2nd.pp.ua.",                                                                                                                                                                                                  ]
...
[api]
...
tls = "letsencrypt"
โ€ฆ

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ docker-compose เปƒเบ™เบšเบฑเบ™เบŠเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เบปเป‰เบ™เบ•เป:

version: '3.7'
services:
  acmedns:
    image: joohoi/acme-dns:latest
    ports:
      - "443:443"
      - "53:53"
      - "53:53/udp"
      - "80:80"
    volumes:
      - ./config:/etc/acme-dns:ro
      - ./data:/var/lib/acme-dns

เบžเป‰เบญเบก. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰.

$ docker-compose up -d

เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ„เบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบเป‰เป„เบ‚ acme.2nd.pp.ua, เปเบฅเบฐ 404 เบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™ https://acme.2nd.pp.ua

$ ping acme.2nd.pp.ua
PING acme.2nd.pp.ua (35.237.128.147) 56(84) bytes of data.

$ curl https://acme.2nd.pp.ua
404 page not found

เบ–เป‰เบฒเบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบ›เบฒเบเบปเบ” - docker logs -f <container_name> เป€เบžเบทเปˆเบญเบŠเปˆเบงเบ, เป‚เบŠเบเบ”เบต, เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰.

เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. เป€เบ›เบตเบ” powershell เป€เบ›เบฑเบ™เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เปเบฅเบฐเปเบฅเปˆเบ™ winacme. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฑเป‰เบ‡:

  • M: เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปƒเบซเบกเปˆ (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบ•เบฑเบก)
  • 2: เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เป‰เบงเบเบกเบท
  • 2: [dns-01] เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ”เป‰เบงเบ acme-dns (https://github.com/joohoi/acme-dns)
  • เป€เบกเบทเปˆเบญเบ–เบทเบเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ACME-DNS, เปƒเบชเปˆ URL เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™ (https) เปƒเบ™เบ„เปเบฒเบ•เบญเบš. URL เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบต acme-dns: https://acme.2nd.pp.ua

เปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”, เบฅเบนเบเบ„เป‰เบฒเบญเบญเบเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง (เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡):

[INFO] Creating new acme-dns registration for domain 1nd.pp.ua

Domain:              1nd.pp.ua
Record:               _acme-challenge.1nd.pp.ua
Type:                   CNAME
Content:              c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
Note:                   Some DNS control panels add the final dot automatically.
                           Only one is required.

เป„เบ›เบชเบนเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบ SSL

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡:

เป„เบ›เบชเบนเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบ SSL

$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.

เบžเบงเบเป€เบฎเบปเบฒเบขเบทเบ™เบขเบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™ winacme, เปเบฅเบฐเบชเบทเบšเบ•เปเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™:

เป„เบ›เบชเบนเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบ SSL

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ certbot เป€เบ›เบฑเบ™เบฅเบนเบเบ„เป‰เบฒเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบ เบ—เบตเปˆเบ™เบตเป‰.

เบ™เบตเป‰เป€เบฎเบฑเบ”เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™. เบ–เป‰เบฒ, เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, เป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเป‰เบฒเบ‡เบงเบฝเบเบ‡เบฒเบ™เปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เปเปˆเบญเบฒเบเบธเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™