চলো এনক্রিপ্ট ডিএনএস চ্যালেঞ্জ বৈধতা কীভাবে ব্যবহার করবেন?


160

আসুন এনক্রিপ্ট তাদের ঘোষণা করেছে:

ACME DNS চ্যালেঞ্জের জন্য সমর্থন চালু করে

আমি কীভাবে ./letsencrypt-autoডিএনএস চ্যালেঞ্জ ডোমেন বৈধতা ব্যবহার করে একটি নতুন শংসাপত্র তৈরি করব ?


আমার অর্থ সম্পাদনা করুন : http/httpsসদ্য ঘোষিত বৈশিষ্ট্য (2015-01-20) ব্যবহার করে আমি কীভাবে পোর্ট বাইন্ডিং এড়াতে পারি যা আপনাকে লক্ষ্য ডোমেনের ডিএনএস জোনে একটি নির্দিষ্ট টিএক্সটি রেকর্ড যুক্ত করে ডোমেনের মালিকানা প্রমাণ করতে দেয়?


3
পার্শ্ব দ্রষ্টব্য: সার্টবট (লেটসক্রিপ্ট ক্লায়েন্টের জন্য এটি নতুন নাম) এখন ডিফল্টরূপে ওয়েবরুট-ভিত্তিক প্রমাণীকরণের অনুমতি দেয়।
পিয়েরে প্রিন্টেটি

উত্তর:


203

বর্তমানে ম্যানুয়াল মোডে সেরিটবট লেটসেক্রিপ্ট ক্লায়েন্টের সাথেও ডিএনএস বৈধকরণ সম্পাদন করা সম্ভব । অটোমেশনও সম্ভব (নীচে দেখুন)।

ম্যানুয়াল প্লাগইন

আপনি হয় ম্যানুয়াল যাচাই করতে পারেন - ম্যানুয়াল প্লাগইন সহ।

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

এরপরে সার্টবট আপনাকে বৈধতার সাথে এগিয়ে চলার জন্য ম্যানুয়ালি ডোমেনের জন্য একটি টিএক্সটি রেকর্ড আপডেট করার জন্য একটি নির্দেশনা সরবরাহ করবে।

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

ম্যানুয়াল প্লাগইনটি অ-ইন্টারেক্টিভ মোডে চলায় পুনর্নবীকরণটি কাজ করে না। সরকারী সার্টবট ডকুমেন্টেশনে আরও তথ্য ।

আপডেট: ম্যানুয়াল হুকস

নতুন Certbot সংস্করণে আপনি ব্যবহার করতে পারেন আঙ্গুলসমূহ , যেমন --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

আপনি আপনার নিজের হ্যান্ডলারটি লিখতে বা ইতিমধ্যে বিদ্যমান ব্যবহার করতে পারেন, ক্লাউডফ্লেয়ার ডিএনএসের জন্য প্রচুর উপলভ্য রয়েছে।

সরকারী সার্টবট হুক ডকুমেন্টেশন সম্পর্কিত আরও তথ্য

অটোমেশন, পুনর্নবীকরণ, স্ক্রিপ্টিং

আপনি যদি ডিএনএস চ্যালেঞ্জ বৈধতা স্বয়ংক্রিয় করতে চান তবে ভ্যানিলা সার্টবোট দিয়ে এটি বর্তমানে সম্ভব নয়। আপডেট: সার্টবট হুক দিয়ে কিছু অটোমেশন সম্ভব।

আমরা এইভাবে একটি সাধারণ প্লাগইন তৈরি করেছি যা ডিএনএস অটোমেশন সহ স্ক্রিপ্টিং সমর্থন করে। এটি certbot- বহিরাগত-লেখক হিসাবে উপলব্ধ ।

pip install certbot-external-auth

এটি ডিএনএস, এইচটিটিপি, টিএলএস-এসএনআই বৈধকরণ পদ্ধতিগুলি সমর্থন করে। আপনি এটি হ্যান্ডলার মোডে বা JSON আউটপুট মোডে ব্যবহার করতে পারেন।

হ্যান্ডলার মোড

হ্যান্ডলার মোডে, certbot + প্লাগইন বৈধতা এবং ইনস্টলেশন সম্পাদনের জন্য বাহ্যিক হুক (একটি প্রোগ্রাম, শেল স্ক্রিপ্ট, পাইথন, ...) কল করে। অনুশীলনে আপনি একটি সাধারণ হ্যান্ডলার / শেল স্ক্রিপ্ট লিখুন যা ইনপুট আর্গুমেন্টগুলি - ডোমেন, টোকেন এবং ডিএনএসে পরিবর্তন করে। হ্যান্ডলার শেষ হয়ে গেলে, সার্টবট যথারীতি বৈধতার সাথে এগিয়ে যায়।

এটি আপনাকে একটি অতিরিক্ত নমনীয়তা দেয়, নবায়নও সম্ভব also

হ্যান্ডলার মোড ডিহাইড্রেটেড ডিএনএস হুকের সাথে প্রাক্তন (প্রাক্তন লেটসেনক্রিপ.শ)। সাধারণ সরবরাহকারীদের জন্য ইতিমধ্যে অনেকগুলি ডিএনএস হুক রয়েছে (যেমন, ক্লাউডফ্লেয়ার, GoDaddy, AWS) S সংগ্রহস্থলটিতে একটি বিস্তৃত উদাহরণ এবং উদাহরণ হ্যান্ডলার সহ একটি 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 অবজেক্ট তৈরি করে। এটি আরও জটিল ইন্টিগ্রেশন সক্ষম করে - উদাহরণস্বরূপ, উত্তরযোগ্য বা কিছু স্থাপনার ব্যবস্থাপক সার্টিবোটকে কল করছেন। যোগাযোগ STDOUT এবং STDIN এর মাধ্যমে সঞ্চালিত হয়। বৈধতা কার্যকর করতে ডেটা সহ কার্বট জেএসএন অবজেক্ট তৈরি করে, যেমন,

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"}

একবার ডিএনএস আপডেট হয়ে গেলে, কলার সত্যায়িততার সাথে চালিয়ে যেতে পারে এটি সিগন্যাল করার জন্য সার্টবোটের এসটিডিআইএনকে নতুন লাইন চরিত্রটি প্রেরণ করে।

এটি কেন্দ্রীয় পরিচালনা সার্ভার থেকে অটোমেশন এবং শংসাপত্র পরিচালনা সক্ষম করে। ইনস্টলেশন জন্য আপনি এসএসএইচ উপর শংসাপত্র স্থাপন করতে পারেন।

আরও তথ্যের জন্য দয়া করে পড়ুন এবং certbot- বহিরাগত-লেখক গিটহাবের উদাহরণ দেখুন ।

সম্পাদনা: ডিএনএস বৈধতা সমস্যা এবং প্লাগইন ব্যবহারের বর্ণনা দেওয়ার জন্য একটি নতুন ব্লগ পোস্টও রয়েছে

সম্পাদনা: আমরা বর্তমানে উত্তরীয় 2-পদক্ষেপ বৈধতা নিয়ে কাজ করছি, শীঘ্রই বন্ধ হবে।


অন্য কোনও সার্ভারে কোনও ওয়েবসাইট স্থানান্তর করার সময় আপনি এ-রেকর্ডটি স্যুইচ করার আগে একটি নতুন শংসাপত্র চাইতে পারেন। certbot certonly --preferred-challenges dns -d example.comপ্রাথমিক অনুরোধের জন্য আপনি ম্যানুয়াল পদ্ধতি ( ) ব্যবহার করতে পারেন । এ-রেকর্ডটি পরীক্ষা এবং স্যুইচ করার পরে, সাধারণ ওয়েবরুট পদ্ধতিটি ( certbot certonly webroot -d example.com -w /path/to/webrootআগের) ঠিক একই ডোমেন নাম ব্যবহার করে ব্যবহার করুন। যদি সঠিকভাবে সম্পন্ন করা হয় তবে সার্টিবোট বিদ্যমান শংসাপত্র / কনফিগারেশনকে স্বীকৃতি দেবে এবং পুনর্নবীকরণ সেটিংস আপডেট করবে, তাই ভবিষ্যতে শংসাপত্রটি স্বয়ংক্রিয়ভাবে পুনর্নবীকরণ হবে।
marcovtwout

এটি কাজ করে, ইসি 2 স্তরে
অ্যাডাব্লুএস

আমি নিশ্চিত - ম্যানুয়াল-পাবলিক-আইপি-লগিং-ওকে এর অর্থ কী তা জানতে চাই ... ডকুমেন্টেশনটি এটি সম্পর্কে গুপ্ত এবং এখানে যে সমস্ত উদাহরণ ব্যবহার করা হয়েছে তা ব্যাখ্যা করে না ... এটি একটি সহ।
রনডো

পুনর্নবীকরণ প্রক্রিয়াটি কি প্রতিবার নতুন TXT রেকর্ডের প্রয়োজন?
পুরাতন গিজার

1
@ রন্ডো যখন আপনি ম্যানুয়াল মোডটি ইন্টারেক্টিভভাবে ব্যবহার করে কোনও শংসাপত্রের জন্য অনুরোধ করবেন তখন এই প্রম্পটটি দেখানো হবে "দ্রষ্টব্য: এই শংসাপত্রটির অনুরোধ করা হয়েছে বলে এই মেশিনের আইপি সর্বজনীনভাবে লগ করা হবে a আপনি যদি কোনও মেশিনে ম্যানুয়াল মোডে সার্টিবোট চালিয়ে যাচ্ছেন না তবে আপনার সার্ভার, দয়া করে নিশ্চিত হন যে আপনি এটির সাথে ঠিক আছেন। " এই বিকল্পটি সেই প্রম্পটে হ্যাঁ বলে।
মুরু

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 8'16

10

আজকের হিসাবে, সরকারী ক্লায়েন্ট ডিএনএস -01 চ্যালেঞ্জ ধরণের (এখনও) সমর্থন করে না।

Https://commune.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427 দেখুন

আমি এটি তাকিয়ে নেই তাই আমি জানি না। আমার উচ্চ-স্তরের বোঝাপড়াটি "ডিএনএস চ্যালেঞ্জের জন্য আমাদের পাইথন ক্লায়েন্টের পক্ষে এখনও কোনও সমর্থন নেই"।

আপনি এই PR এ অগ্রগতি অনুসরণ করতে পারেন । বিকল্পভাবে, কিছু ক্লায়েন্ট রয়েছে যা ইতিমধ্যে এটি সমর্থন করে।


1
twitter.com/letsencrypt/status/689919523164721152 এটি এখন করে।
ফু

5

আমি letsencrypt.sh ক্লায়েন্টের জন্য একটি হুক স্ক্রিপ্ট লিখেছিলাম যা আপনাকে ডিএনএস সরবরাহকারীদের জন্য লেটস এনক্রিপ্ট ডিএনএস যাচাইকরণ ব্যবহার করতে দেয় যা কোনও এপিআই ব্যবহারের জন্য সরবরাহ করে না (ওরফে, ম্যানুয়াল প্রবেশ এবং যাচাইকরণ প্রয়োজনীয়)।

আপনি এটি এখানে পরীক্ষা করে দেখতে পারেন: https://github.com/jbjonesjr/letsencrypt-manual-hook


3

পূর্ববর্তী উত্তরে উল্লিখিত হিসাবে, আপনি সহজেই এর মাধ্যমে ডিএনএস দ্বারা একটি ডোমেন যাচাই করতে পারবেন:

  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 এর জন্য ম্যানুয়াল ডিএনএস চ্যালেঞ্জ নিশ্চিতকরণের সাথে শংসাপত্র তৈরি করুন (আপনার ডোমেনের সাথে প্রতিস্থাপন করুন): ./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb

3

বিভিন্ন সংমিশ্রণের চেষ্টা করার পরে, ডিহাইড্রেটেড এবং লেটেনক্রিপ্ট-ম্যানুয়াল-হুক গিট সংগ্রহস্থলগুলি ব্যবহার করে এটি আমার পক্ষে কাজ করেছে । নীচের পদক্ষেপগুলি যদি আপনার জন্য কাজ করে তবে এই সংগ্রহস্থলগুলিকে তারা চিহ্নিত করতে ভুলবেন না

দ্রষ্টব্য: এটি প্যান্টিক্স.ডি এবং অ্যালেক্সক্লাইনের উত্তর ছাড়াও

~$ 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...

আপনি একটি হ্যাশ পাবেন (উপরের কমান্ডটি চালানোর পরে), আপনার ডিএনএসে একটি টিএক্সটি রেকর্ড তৈরি করুন। নিশ্চিত করুন যে এটি নীচের কমান্ড বা জিসুইট টুলবক্সটি চালিয়ে কাজ করে

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

এখন, প্রম্পটে এন্টার টিপুন । টিএক্সটি রেকর্ড আপডেট হওয়া সত্ত্বেও এটি আমার পক্ষে কার্যকর হয়নি। আমাকে 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 ) এ একটি এসএমই ক্লায়েন্ট লিখেছেন যা ডিএনএস চ্যালেঞ্জগুলিকে সমর্থন করে (বিআইএনডি-র এনসপডেট প্রোটোকল সহ)। এটি আমার জন্য কমপক্ষে 18 মাস ধরে নির্বিঘ্নে কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.