ብዙ ጊዜ ከ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-dns አገልጋይን በመጠቀም የዲ ኤን ኤስ መዝገቦችን መፍጠር (ለተጨማሪ ዝርዝሮች፣ ይመልከቱ
እዚህ . - የእራስዎን ስክሪፕት በመጠቀም የዲ ኤን ኤስ መዝገቦችን መፍጠር (ከCloudflare plugin for certbot ጋር ተመሳሳይ)።
በመጀመሪያ ሲታይ, ሦስተኛው ነጥብ በጣም ተስማሚ ነው, ነገር ግን የዲ ኤን ኤስ አቅራቢው ይህንን ተግባር የማይደግፍ ከሆነ? እና አጠቃላይ ጉዳይ ያስፈልገናል. እና አጠቃላይ ጉዳዩ የCNAME መዝገቦች ነው፣ ሁሉም ሰው ይደግፋቸዋል። ስለዚህ፣ ነጥብ 2 ላይ እናቆማለን፣ እና የእኛን ACME-DNS አገልጋይ ለማዋቀር እንሄዳለን።
ACME-DNS አገልጋይ ማዋቀር እና የምስክር ወረቀት አሰጣጥ ሂደት
ለምሳሌ እኔ 2nd.pp.ua ጎራ ፈጠርኩ እና ወደፊት እጠቀማለሁ።
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