භාවිතා කරන්නේ කෙසේද DNS අභියෝගාත්මක වලංගුකරණය සංකේතනය කරමු?


174

එහෙනම් අපි එන්ක්රිප්ට් කර ඇත නිවේදනය ඇති පරිදි:

ACME DNS අභියෝගයට සහය සක්‍රිය කර ඇත

./letsencrypt-autoDNS අභියෝග වසම් වලංගුකරණය භාවිතා කර නව සහතිකයක් ජනනය කරන්නේ කෙසේද ?

සංස්කරණය කරන්න
මා අදහස් කළේ: http/httpsඉලක්කගත වසමේ DNS කලාපයේ නිශ්චිත TXT වාර්තාවක් එක් කිරීමෙන් වසමේ හිමිකාරිත්වය ඔප්පු කිරීමට ඔබට ඉඩ සලසන අලුතින් ප්‍රකාශයට පත් කරන ලද විශේෂාංගය (2015-01-20) භාවිතා කිරීමෙන් මම වරාය බැඳීම වළක්වා ගන්නේ කෙසේද ?


3
පැති සටහන: Certbot (මෙය letsencrypt සේවාදායකයාගේ නව නමයි) දැන් පෙරනිමියෙන් වෙබ්රූට් මත පදනම් වූ සත්‍යාපනය සඳහා ඉඩ ලබා දේ.
පියරේ ප්‍රින්ටි

Answers:


231

වර්තමානයේදී ඩීඑන්එස් වලංගුකරණය සිදු කළ හැකි අතර, සර්ට්බෝට් ලෙට්ස් එන්ක්‍රිප්ට් සේවාදායකයා සමඟ අතින් ක්‍රියාකරනු ලැබේ. ස්වයංක්‍රීයකරණය ද කළ හැකිය (පහත බලන්න).

අතින් ප්ලගිනය

ඔබට අතින් සත්‍යාපනය කළ හැකිය - අත්පොත ප්ලගිනය සමඟ.

certbot -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns certonly

වලංගුකරණය සමඟ ඉදිරියට යාම සඳහා සර්ට්බෝට් විසින් වසම සඳහා TXT වාර්තාවක් අතින් යාවත්කාලීන කිරීමට උපදෙස් ලබා දෙනු ඇත.

Please deploy a DNS TXT record under the name
_acme-challenge.bristol3.pki.enigmabridge.com with the following value:

667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc

Once this is deployed,
Press ENTER to continue

ඔබ ඩී.එන්.එස්.

අන්තර්ක්‍රියාකාරිත්වය අවම කිරීම සහ සහතික පත්‍ර ප්‍රශ්නවලට පිළිතුරු සැපයීම සඳහා ඔබට තවත් විකල්ප සහිත විධානයක් භාවිතා කළ හැකිය. අත්පොත ප්ලගිනය තවමත් අන්තර්ක්‍රියාකාරී නොවන මාදිලියට සහය නොදක්වන බව සලකන්න.

certbot --text --agree-tos --email you@example.com -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly

අළුත් නොකිරීම අතින් ක්‍රියාකරන ප්ලගිනය සමඟ ක්‍රියා නොකරයි. නිල සහතික පත්‍ර ලේඛනයේ වැඩි විස්තර .

යාවත්කාලීන කිරීම: අතින් කොකු

නව සර්ට්බෝට් අනුවාදයේ දී ඔබට කොකු භාවිතා කළ හැකිය , උදා. --manual-auth-hook, --manual-cleanup-hook. කොකු යනු කර්තව්‍යය ඉටු කිරීම සඳහා සර්ට්බෝට් විසින් ක්‍රියාත්මක කරන බාහිර ස්ක්‍රිප්ට් ය.

තොරතුරු පරිසර විචල්‍යයන්ගෙන් සම්මත වේ - උදා: වලංගු කිරීමට වසම, අභියෝගාත්මක ටෝකනය. Vars: CERTBOT_DOMAIN, CERTBOT_VALIDATION, CERTBOT_TOKEN.

certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /path/to/dns/authenticator.sh --manual-cleanup-hook /path/to/dns/cleanup.sh -d secure.example.com

ඔබට ඔබේම හසුරුවන්නෙකු ලිවීමට හෝ දැනටමත් පවතින ඒවා භාවිතා කළ හැකිය. Cloudflare DNS සඳහා බොහෝ දේ ඇත.

නිල සර්ට්බෝට් කොකු ප්‍රලේඛනය පිළිබඳ වැඩි විස්තර .

ස්වයංක්‍රීයකරණය, අලුත් කිරීම, ස්ක්‍රිප්ටින් කිරීම

ඔබ ඩීඑන්එස් අභියෝගාත්මක වලංගුකරණය ස්වයංක්‍රීය කිරීමට කැමති නම් එය දැනට වැනිලා සර්ට්බෝට් සමඟ කළ නොහැක. යාවත්කාලීන කිරීම: සර්ට්බෝට් කොකු සමඟ සමහර ස්වයංක්‍රීයකරණය කළ හැකිය.

මේ අනුව අපි ඩීඑන්එස් ස්වයංක්‍රීයකරණය සමඟ ස්ක්‍රිප්ටින් සඳහා සහාය වන සරල ප්ලගිනයක් නිර්මාණය කළෙමු. එය certbot-external-auth ලෙස ලබා ගත හැකිය .

pip install certbot-external-auth

එය DNS, HTTP, TLS-SNI වලංගු කිරීමේ ක්‍රම සඳහා සහය දක්වයි. ඔබට එය හෑන්ඩ්ලර් ප්‍රකාරයේදී හෝ JSON ප්‍රතිදාන ප්‍රකාරයේදී භාවිතා කළ හැකිය.

හෑන්ඩ්ලර් ප්‍රකාරය

හෑන්ඩ්ලර් ප්‍රකාරයේදී, සහතික කිරීම සහ ස්ථාපනය කිරීම සඳහා සර්ට්බෝට් + ප්ලගිනය බාහිර කොකු (වැඩසටහනක්, ෂෙල් ස්ක්‍රිප්ට්, පයිතන්, ...) අමතයි. ප්‍රායෝගිකව ඔබ ආදාන තර්ක ලබා ගන්නා සරල හසුරුවන්නා / ෂෙල් ස්ක්‍රිප්ට් එකක් ලියයි - වසම, ටෝකනය සහ DNS හි වෙනසක් සිදු කරයි. හසුරුවන්නා අවසන් වූ විට, සර්ට්බෝට් සුපුරුදු පරිදි වලංගු කිරීම සමඟ ඉදිරියට යයි.

මෙය ඔබට අමතර නම්යතාවයක් ලබා දෙයි, අලුත් කිරීම ද කළ හැකිය.

හෑන්ඩ්ලර් ප්‍රකාරය විජලනය කළ ඩීඑන්එස් කොකු (පෙර letsencrypt.sh) සමඟ අනුකූල වේ. පොදු සැපයුම්කරුවන් සඳහා දැනටමත් බොහෝ DNS කොකු ඇත (උදා: CloudFlare, GoDaddy, AWS). නිධිය තුළ පුළුල් උදාහරණ සහ උදාහරණ හසුරුවන්නන් සහිත README ඇත.

විජලනය කළ ඩීඑන්එස් කොක්ක සමඟ උදාහරණය :

certbot \
    --text --agree-tos --email you@example.com \
    --expand --renew-by-default \
    --configurator certbot-external-auth:out \
    --certbot-external-auth:out-public-ip-logging-ok \
    -d "bristol3.pki.enigmabridge.com" \
    --preferred-challenges dns \
    --certbot-external-auth:out-handler ./dehydrated-example.sh \
    --certbot-external-auth:out-dehydrated-dns \
    run 

JSON මාදිලිය

තවත් ප්ලගීන ක්‍රමයක් වන්නේ JSON ප්‍රකාරයයි. එය එක් පේළියකට එක් JSON වස්තුවක් නිෂ්පාදනය කරයි. මෙය වඩාත් සංකීර්ණ අනුකලනයකට ඉඩ සලසයි - උදා: ඇන්සිබල් හෝ සමහර යෙදවුම් කළමණාකරු සර්ට්බෝට් අමතන විට. සන්නිවේදනය STDOUT සහ STDIN හරහා සිදු කෙරේ. වලංගු කිරීම සිදු කිරීම සඳහා සර්බොට් දත්ත සහිත JSON වස්තු නිෂ්පාදනය කරයි, උදාහරණයක් ලෙස:

certbot \
    --text --agree-tos --email you@example.com \
    --expand --renew-by-default \
    --configurator certbot-external-auth:out \
    --certbot-external-auth:out-public-ip-logging-ok \
    -d "bristol3.pki.enigmabridge.com" \
    --preferred-challenges dns \
    certonly 2>/dev/null

{"cmd": "perform_challenge", "type": "dns-01", "domain": "bs3.pki.enigmabridge.com", "token": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4", "validation": "ejEDZXYEeYHUxqBAiX4csh8GKkeVX7utK6BBOBshZ1Y", "txt_domain": "_acme-challenge.bs3.pki.enigmabridge.com", "key_auth": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4.tRQM98JsABZRm5-NiotcgD212RAUPPbyeDP30Ob_7-0"}

ඩීඑන්එස් යාවත්කාලීන වූ පසු, අමතන්නා විසින් නව රේඛා අක්‍ෂරය එස්.ටී.ඩී.එන්. සර්ට්බෝට් වෙත යවයි.

මෙමඟින් මධ්‍යම කළමනාකරණ සේවාදායකයෙන් ස්වයංක්‍රීයකරණය සහ සහතික කළමනාකරණය කළ හැකිය. ස්ථාපනය සඳහා ඔබට SSH හරහා සහතික යෙදවිය හැකිය.

වැඩි විස්තර සඳහා කරුණාකර certbot-external-auth GitHub හි කියවීම් සහ උදාහරණ බලන්න .

සංස්කරණය කරන්න: ඩීඑන්එස් වලංගු කිරීමේ ගැටලුව සහ ප්ලගීන භාවිතය විස්තර කරන නව බ්ලොග් සටහනක් ද ඇත .

සංස්කරණය කරන්න: අපි දැනට ඇන්සිබල් 2-පියවර වලංගුකරණය සඳහා වැඩ කරමින් සිටිමු.


වෙබ් අඩවියක් වෙනත් සේවාදායකයකට සංක්‍රමණය කිරීමේදී ඔබට A- වාර්තාව මාරු කිරීමට පෙර නව සහතිකයක් අවශ්‍ය විය හැකිය. certbot certonly --preferred-challenges dns -d example.comආරම්භක ඉල්ලීම සඳහා ඔබට අත්පොත ක්‍රමය ( ) භාවිතා කළ හැකිය . A- වාර්තාව පරීක්ෂා කර මාරු කිරීමෙන් පසුව, certbot certonly webroot -d example.com -w /path/to/webrootපෙර මෙන් එකම ඩොමේන් නාමය (ය) භාවිතා කරමින් පොදු වෙබ්රූට් ක්‍රමය ( ) භාවිතා කරන්න. නිවැරදිව සිදු කළ හොත්, සර්ට්බොට් දැනට පවතින සහතිකය / වින්‍යාසය හඳුනාගෙන අලුත් කිරීමේ සැකසුම් යාවත්කාලීන කරනු ඇත, එබැවින් සහතිකය අනාගතයේදී ස්වයංක්‍රීයව අලුත් වේ.
marcovtwout

එය ක්‍රියාත්මක වේ, EC2 මට්ටමින් AWS ෆයර්වෝල් පරිස්සම් වන්න
jruzafa

මට විශ්වාසයි - manual-public-ip-logging-ok යන්නෙන් අදහස් කරන්නේ කුමක්ද .... ප්‍රලේඛනය ඒ පිළිබඳව ගුප්ත වන අතර එය භාවිතා කරන සියලුම උදාහරණ පැහැදිලි නොකරයි ... මේ ඇතුළුව.
රොන්ඩෝ

අලුත් කිරීමේ ක්‍රියාවලියට සෑම අවස්ථාවකම නව TXT වාර්තාවක් අවශ්‍යද?
පරණ ගීසර්

1
Ond රොන්ඩෝ ඔබ අතින් ක්‍රියාකරන ආකාරය භාවිතා කරමින් සහතිකයක් ඉල්ලා සිටින විට, මෙම විමසුම "සටහන: මෙම යන්ත්‍රයේ අයිපී මෙම සහතිකය ඉල්ලා ඇති පරිදි ප්‍රසිද්ධියේ ලොග් වනු ඇත. ඔබ සහතික යන්ත්‍රයක් අතින් ක්‍රියාකරන්නේ නැතිනම් යන්ත්‍රයක ඔබේ සේවාදායකයා, කරුණාකර ඔබ ඒ සමඟ හොඳින් සිටින බවට සහතික වන්න. ” මෙම විකල්පය එම විමසුමට ඔව් යැයි කියයි.
මුරු

39

dehydratedඩීඑන්එස් වලංගුකරණය භාවිතා කර සහතිකයක් ලබා ගැනීමට සේවාදායකයා භාවිතා කිරීමට මට හැකි විය .

https://github.com/lukas2511/dehydrated

./dehydrated --cron --domain my.domain.example.com --hook ./hook.route53.rb --challenge dns-01

ඔබගේ වසම සඳහා නිවැරදි ඩීඑන්එස් වලංගු කිරීමේ කොක්ක භාවිතා කිරීමට ඔබට අවශ්‍ය වනු ඇත, නමුත් උදාහරණ ලෙස විකල්ප කිහිපයක් තිබේ:

https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks


මෙය මට හොඳට වැඩ කළා. මා එකතු කරන එකම අවවාදය නම්, route53.rbකොකු පිටපතෙහි අර්ථ දක්වා ඇති මැණික් පරායත්තතා කිහිපයක් ස්ථාපනය කිරීමට මට සිදුවිය .
jmreicha

11

අද වන විට, නිල සේවාදායකයා DNS-01 අභියෝගතා වර්ගයට (තවමත්) සහය නොදක්වයි.

Https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427 බලන්න

මම මේ දෙස බැලුවේ නැත, එබැවින් මම නොදනිමි. මගේ ඉහළ මට්ටමේ අවබෝධය "ඩීඑන්එස් අභියෝගයට තවමත් අපගේ පයිතන් සේවාදායකයාගෙන් සහය නොලැබේ".

ඔබට ප්‍රගතිය අනුගමනය කළ හැකිය මෙම PR . විකල්පයක් ලෙස, දැනටමත් එයට සහාය දක්වන සමහර සේවාදායකයින් සිටී.


2
twitter.com/letsencrypt/status/689919523164721152 එය දැන් කරයි.
foo

5

මම ලිව්වා අ Letsencrypt.sh සේවාදායකයා සඳහා කොකු ස්ක්‍රිප්ට් එය භාවිතා කිරීමට api එකක් ලබා නොදෙන DNS සපයන්නන් සඳහා DNS සත්‍යාපනය කිරීමට ඉඩ දෙන්න (aka, manual entry සහ සත්‍යාපනය අවශ්‍ය වේ).

ඔබට එය මෙතැනින් පරීක්ෂා කර බැලිය හැකිය: https://github.com/jbjonesjr/letsencrypt-manual-hook


3

පෙර පිළිතුරු වල සඳහන් කළ පරිදි, ඔබට DNS විසින් වසමක් පහසුවෙන් සත්‍යාපනය කළ හැකිය:

  1. අවශ්‍ය යෙදුම් ස්ථාපනය කරන්න (උබුන්ටු යටතේ): apt-get install -y git ruby letsencrypt git clone https://github.com/lukas2511/dehydrated.git git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
  2. www.example.com සඳහා අත්පොත DNS අභියෝග තහවුරු කිරීම සමඟ සහතිකයක් ජනනය කරන්න (ඔබගේ වසම සමඟ ප්‍රතිස්ථාපනය කරන්න): ./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb

3

විවිධ සංයෝජන අත්හදා බැලීමෙන් පසු, විජලනය කළ සහ ලෙට්සෙන්ක්‍රිප්ට්-මැනුවල්-කොකු ගිට් නිධි භාවිතා කරමින් මෙය මට වැඩ කළේය . පහත පියවර ඔබ වෙනුවෙන් වැඩ කරන්නේ නම්, මෙම ගබඩාවලට තරු තැබීමට අමතක නොකරන්න

සටහන: මෙය panticz.de සහ alexcline හි පිළිතුරු වලට අමතරව වේ

~$ git clone https://github.com/lukas2511/dehydrated.git
~$ git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
~$ cd dehydrated
~$ ./dehydrated --register --accept-terms
~$ ./dehydrated --cron --challenge dns-01 --domain your.domain.com --hook ./hooks/manual/manual_hook.rb
#
# !! WARNING !! No main config file found, using default config!
#
Processing your.domain.com
 + Signing domains...
 + Creating new directory /Users/vikas/dehydrated/certs/your.domain.com ...
 + Creating chain cache directory /Users/vikas/dehydrated/chains
 + Generating private key...
 + Generating signing request...
 + Requesting authorization for your.domain.com...
 + 1 pending challenge(s)
 + Deploying challenge tokens...
Checking for pre-existing TXT record for the domain: '_acme-challenge.your.domain.com'.
Create TXT record for the domain: '_acme-challenge.your.domain.com'. TXT record:
'gkIxxxxxxxIcAESmjF8pjZGQrrZxxxxxxxxxxx'
Press enter when DNS has been updated...

ඔබට හැෂ් එකක් ලැබෙනු ඇත (ඉහත විධානය ක්‍රියාත්මක කිරීමෙන් පසු), ඔබේ ඩීඑන්එස් තුළ TXT වාර්තාවක් සාදන්න . පහත විධානය හෝ GSuite මෙවලම් පෙට්ටිය ක්‍රියාත්මක කිරීමෙන් එය ක්‍රියාත්මක වන බවට වග බලා ගන්න

~$ dig TXT _acme-challenge.your.domain.com. +short @8.8.8.8
"gkIxxxxxxxIcAESmjF8pjZGQrrZxxxxxxxxxxx"
~$

දැන්, විමසුමේදී enter ඔබන්න . TXT වාර්තාව යාවත්කාලීන කළද මෙය මට ප්‍රයෝජනවත් නොවීය. මට Ctrl + C ඔබා නැවත විධානය ක්‍රියාත්මක කිරීමට සිදු විය.

~$ ./dehydrated --cron --challenge dns-01 --domain your.domain.com --hook ./hooks/manual/manual_hook.rb
#
# !! WARNING !! No main config file found, using default config!
#
Processing your.domain.com
 + Signing domains...
 + Generating private key...
 + Generating signing request...
 + Requesting authorization for your.domain.com...
 + 1 pending challenge(s)
 + Deploying challenge tokens...
Checking for pre-existing TXT record for the domain: '_acme-challenge.your.domain.com'.
Found gkIxxxxxxxIcAESmjF8pjZGQrrZxxxxxxxxxxx. match.
 + Responding to challenge for your.domain.com authorization...
Challenge complete. Leave TXT record in place to allow easier future refreshes.
 + Challenge is valid!
 + Requesting certificate...
 + Checking certificate...
 + Done!
 + Creating fullchain.pem...
 + Walking chain...
 + Done!
~$

දැන්, ඔබේ රජයේ සහ පෞද්ගලික සහතික මෙහි ඇත.

$ ls certs/your.domain.com/privkey.pem certs/your.domain.com/fullchain-1517576424.pem

අලුත් කිරීම සඳහා (අවම පොරොත්තු කාලය දින 30 කි), නැවතත් එකම විධානය පමණි.

~$ ./dehydrated --cron --challenge dns-01 --domain your.domain.com --hook ./hooks/manual/manual_hook.rb

1

හියුගෝ ලෑන්ඩෝ විසින් ඩීඑන්එස් අභියෝගයන්ට (බින්ඩ්ගේ යාවත්කාලීන යාවත්කාලීන ප්‍රොටෝකෝලය සමඟ) සහාය දෙන ගො ( https://github.com/hlandau/acme ) හි ACME ග්‍රාහකයක් ලිවීය . එය අවම වශයෙන් මාස 18 ක් තිස්සේ මට දෝෂ රහිතව වැඩ කරයි.


0

එය භාවිතා කරන විට ඉටු කිරීමට ඉතා පහසු වේ --manual-auth-hookහා --manual-cleanup-hookතුළ certbot .

certbot-auto --manual --preferred-challenges dns --manual-auth-hook auth.sh --manual-cleanup-hook cleanup.sh -d your.domain.com -d *.wildcard.domains.com`

කොහෙද auth.shවගේ දෙයක්

#!/bin/sh

KEYFILE=tsig_key_file

nsupdate -k $KEYFILE <<EOT
server ns.some-domain.com
update add _acme-challenge.$CERTBOT_DOMAIN 60 txt $CERTBOT_VALIDATION
send
EOT

# wait a few seconds to let the change take effect
sleep 5

හා cleanup.shවැනි යමක්

#!/bin/sh

KEYFILE=/opt/certbot-authenticator/tsig

nsupdate -k $KEYFILE<<EOT
server dns-master
update del _acme-challenge.$CERTBOT_DOMAIN
send
EOT

ගතික dns යාවත්කාලීන කිරීම් (RFC2136) සඳහා ඔබේ dns සේවාදායකය නිසි ලෙස වින්‍යාස කර තිබේ නම්. TSIG යතුරක් භාවිතා කිරීම තදින්ම උපදෙස් දෙන නමුත් ඔබ එය ප්‍රයෝජනයට නොගන්නේ නම් ආයාචනා කිරීමේදී -k $KEYFILEවිකල්පය කපා දමන්න nsupdate.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.