የኤስ ኤስ ኤልን አውቶማቲክ ለማድረግ

ብዙ ጊዜ ከSSL የምስክር ወረቀቶች ጋር መስራት አለብን። የምስክር ወረቀት የመፍጠር እና የመጫን ሂደቱን እናስታውስ (በአጠቃላይ ለአብዛኞቹ).

  • አቅራቢ ያግኙ (SSL የምንገዛበት ጣቢያ)።
  • CSR ፍጠር።
  • ወደ አቅራቢው ይላኩት።
  • የጎራ ባለቤትነትን ያረጋግጡ።
  • የምስክር ወረቀት ያግኙ።
  • የምስክር ወረቀቱን ወደ ተፈላጊው ቅጽ ይለውጡ (አማራጭ)። ለምሳሌ፣ ከፔም እስከ PKCS #12።
  • የምስክር ወረቀቱን በድር አገልጋይ ላይ ይጫኑ።

በአንፃራዊነት ፈጣን ፣ ቀላል እና ለመረዳት የሚቻል። ቢበዛ ደርዘን ፕሮጀክቶች ካሉን ይህ አማራጭ በጣም ተስማሚ ነው። ከእነሱ የበለጠ ቢኖሩስ እና ቢያንስ ሶስት አከባቢዎች ቢኖራቸውስ? ክላሲክ ዴቭ - ስቴጅንግ - ምርት. በዚህ ሁኔታ, ይህንን ሂደት በራስ-ሰር ስለመፍጠር ማሰብ ጠቃሚ ነው. ወደ ችግሩ ትንሽ ጠለቅ ብለን ሰርተፍኬቶችን በመፍጠር እና በማቆየት ላይ ያለውን ጊዜ የበለጠ የሚቀንስ መፍትሄ ለመፈለግ ሀሳብ አቀርባለሁ። ጽሑፉ የችግሩን ትንተና እና ለመድገም ትንሽ መመሪያ ይይዛል.

አስቀድሜ ቦታ ማስያዝ አደርጋለሁ፡ የኩባንያችን ዋና ስፔሻላይዜሽን .net ነው፣ እና በዚህ መሰረት፣ አይአይኤስ እና ሌሎች ከስክሩ ጋር የተያያዙ። ስለዚህ የACME ደንበኛ እና ለእሱ የሚደረጉ ሁሉም ድርጊቶች መስኮቶችን ከመጠቀም አንፃርም ይገለፃሉ።

ለማን አግባብነት ያለው እና አንዳንድ የጀርባ ውሂብ

ኩባንያ K በጸሐፊው የተወከለው. URL (ለምሳሌ)፡ company.tld

ፕሮጄክት X ከፕሮጀክቶቻችን ውስጥ አንዱ ነው ፣ በዚህ ውስጥ እኔ ከሰርተፍኬት ጋር ስንሰራ አሁንም ወደ ከፍተኛ ጊዜ ቆጣቢነት መሄድ አለብን የሚል መደምደሚያ ላይ ደረስኩ። ይህ ፕሮጀክት አራት አከባቢዎች አሉት፡ ዴቭ፣ ሙከራ፣ ደረጃ እና ምርት። ዴቭ እና ፈተና ከጎናችን ናቸው፣ ስቴጅንግ እና ምርት በደንበኛው በኩል ናቸው።

የፕሮጀክቱ ገፅታ እንደ ንዑስ ጎራዎች የሚገኙ ብዙ ቁጥር ያላቸው ሞጁሎች አሉት።

ማለትም የሚከተለው ምስል አለን:

dev
ሙከራ
ማሳያ
ፕሮዳክሽን

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

ለምርት, የተገዛ የዱር ካርድ የምስክር ወረቀት ጥቅም ላይ ይውላል, እዚህ ምንም ጥያቄዎች የሉም. ነገር ግን የንኡስ ጎራውን የመጀመሪያ ደረጃ ብቻ ይሸፍናል. በዚህ መሠረት ለ *.ፕሮጀክትX.tld ሰርተፍኬት ካለ፣ለstaging.projectX.tld ይሰራል፣ነገር ግን ለ module1.staging.projectX.tld አይሰራም። የተለየ መግዛት አልፈልግም።

እና ይህ በአንድ ኩባንያ አንድ ፕሮጀክት ምሳሌ ላይ ብቻ ነው. እና ፕሮጀክቱ, በእርግጥ, ብቻውን አይደለም.

ይህንን ችግር ለመፍታት አጠቃላይ ምክንያቶች ይህንን ይመስላል

  • ሰሞኑን ጉግል ከፍተኛውን የSSL የምስክር ወረቀቶችን የሚቆይበትን ጊዜ እንዲቀንስ ሐሳብ አቅርቧል. ከሁሉም ውጤቶች ጋር.
  • ለፕሮጀክቶች እና ለኩባንያው አጠቃላይ ፍላጎቶች SSL የመስጠት እና የማቆየት ሂደትን ለማመቻቸት።
  • ዲ ኤን ኤስን በመጠቀም የጎራ ማረጋገጥ ችግርን እና በቀጣይ አውቶማቲክ እድሳት በከፊል የሚፈታ እና የደንበኛ እምነትን ጉዳይ የሚፈታ ማዕከላዊ የምስክር ወረቀት መዝገቦች ማከማቻ። ቢሆንም፣ CNAME ከሶስተኛ ወገን ሃብት ይልቅ በአጋር/አስፈፃሚ ኩባንያ አገልጋይ ላይ ታማኝ ነው።
  • ደህና, በመጨረሻም, በዚህ ጉዳይ ላይ, "ከሌላ ከሌለ ይሻላል" የሚለው ሐረግ በትክክል ይጣጣማል.

የኤስ ኤስ ኤል አቅራቢ እና የዝግጅት ደረጃዎች መምረጥ

ለነጻ የኤስኤስኤል ሰርተፍኬት ካሉት አማራጮች መካከል Cloudflare እና letsencrypt ተወስደዋል። ለዚህ (እና አንዳንድ ሌሎች ፕሮጀክቶች) ዲ ኤን ኤስ የሚስተናገደው በCloudflare ነው፣ ነገር ግን የምስክር ወረቀቶቻቸውን የመጠቀም አድናቂ አይደለሁም። ስለዚህ, letsencrypt ለመጠቀም ተወስኗል.
የዱር ካርድ SSL ሰርተፍኬት ለመፍጠር የጎራውን ባለቤትነት ማረጋገጥ ያስፈልግዎታል። ይህ ሂደት የምስክር ወረቀት በሚሰጥበት ጊዜ ከሚቀጥለው ማረጋገጫ ጋር አንዳንድ የዲ ኤን ኤስ መዝገብ (TXT ወይም CNAME) መፍጠርን ያካትታል። ሊኑክስ መገልገያ አለው - እዉነት, ይህም በከፊል (ወይም ሙሉ ለሙሉ ለአንዳንድ ዲ ኤን ኤስ አቅራቢዎች) ይህን ሂደት በራስ-ሰር እንዲያደርጉ ያስችልዎታል. ለዊንዶውስ ተመሳሳይ ከ ተገኝቷል እና ተፈትኗል ለ ACME ደንበኞች አማራጮች ወሰንኩ። WinACME.

እና ለጎራው መዝገቡ ተፈጥሯል፣ ወደ ሰርተፍኬት መፍጠር እንሂድ፡-

የኤስ ኤስ ኤልን አውቶማቲክ ለማድረግ

የመጨረሻው መደምደሚያ ላይ ፍላጎት አለን ፣ ማለትም ፣ የዱር ካርድ የምስክር ወረቀት ለመስጠት የጎራ ባለቤትነትን ለማረጋገጥ ያሉ አማራጮች።

  1. የዲኤንኤስ መዝገቦችን በእጅ መፍጠር (ራስ-ሰር ማዘመን አይደገፍም)
  2. የ acme-dns አገልጋይን በመጠቀም የዲ ኤን ኤስ መዝገቦችን መፍጠር (ለተጨማሪ ዝርዝሮች፣ ይመልከቱ እዚህ.
  3. የእራስዎን ስክሪፕት በመጠቀም የዲ ኤን ኤስ መዝገቦችን መፍጠር (ከCloudflare plugin for certbot ጋር ተመሳሳይ)።

በመጀመሪያ ሲታይ, ሦስተኛው ነጥብ በጣም ተስማሚ ነው, ነገር ግን የዲ ኤን ኤስ አቅራቢው ይህንን ተግባር የማይደግፍ ከሆነ? እና አጠቃላይ ጉዳይ ያስፈልገናል. እና አጠቃላይ ጉዳዩ የ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 የሚያገለግለው ዲ ኤን ኤስ አገልጋይ ገና እየሰራ ስላልሆነ አይፈታም።

መዝገቦቹ ተፈጥረዋል፣ ወደ ACME-DNS አገልጋይ ማዋቀር እና መጀመር እንጀምር። በኡቡንቱ አገልጋይ ላይ እኖራለሁ ዳኪር መያዣ, ነገር ግን ጎላንግ ባለበት በማንኛውም ቦታ ማሄድ ይችላሉ. ዊንዶውስ እንዲሁ ጥሩ ነው ፣ ግን አሁንም የሊኑክስ አገልጋይ እመርጣለሁ።

አስፈላጊዎቹን ማውጫዎች እና ፋይሎች ይፍጠሩ:

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

ቪም ከምትወደው የጽሑፍ አርታዒ ጋር እንጠቀም እና ናሙናውን ወደ config.cfg ለጥፍ ማዋቀር.

ለስኬታማ ሥራ አጠቃላይ እና ኤፒአይ ክፍሎችን ማረም በቂ ነው-

[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"
…

እንዲሁም፣ እንደ አማራጭ፣ በአገልግሎቱ ዋና ማውጫ ውስጥ ዶከር አዘጋጅ ፋይል ይፍጠሩ፡-

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 ያሂዱ። ምርጫዎቹን እንፈልጋለን፡-

  • መ፡ አዲስ የምስክር ወረቀት ይፍጠሩ (ሙሉ አማራጮች)
  • 2፡ በእጅ ግቤት
  • 2: [dns-01] የማረጋገጫ መዝገቦችን በ acme-dns ይፍጠሩ (https://github.com/joohoi/acme-dns)
  • ከACME-DNS አገልጋይ ጋር ስላለው አገናኝ ሲጠየቁ የተፈጠረውን አገልጋይ (https) ዩአርኤል በምላሹ ያስገቡ። የ acme-dns አገልጋይ ዩአርኤል፡- https://acme.2nd.pp.ua

በምላሹ፣ ደንበኛው አሁን ባለው የዲ ኤን ኤስ አገልጋይ (የአንድ ጊዜ ሂደት) ላይ መጨመር ያለበትን መዝገብ ያወጣል።

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

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

የኤስ ኤስ ኤልን አውቶማቲክ ለማድረግ

አስፈላጊውን ግቤት እንፈጥራለን, እና በትክክል መፈጠሩን ያረጋግጡ:

የኤስ ኤስ ኤልን አውቶማቲክ ለማድረግ

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

በ winacme ውስጥ አስፈላጊውን ግቤት እንደፈጠርን እናረጋግጣለን እና የምስክር ወረቀት የመፍጠር ሂደቱን እንቀጥላለን፡

የኤስ ኤስ ኤልን አውቶማቲክ ለማድረግ

Certbot እንደ ደንበኛ እንዴት መጠቀም እንደሚቻል ተገልጿል እዚህ.

ይህ የምስክር ወረቀት የመፍጠር ሂደቱን ያጠናቅቃል, በድር አገልጋይ ላይ መጫን እና መጠቀም ይችላሉ. የምስክር ወረቀት በሚፈጥሩበት ጊዜ, በመርሃግብር አውጪው ውስጥ አንድ ተግባር ከፈጠሩ, ለወደፊቱ የምስክር ወረቀቱን የማዘመን ሂደት በራስ-ሰር ይከሰታል.

ምንጭ: hab.com

አስተያየት ያክሉ