Lua-resty-auto-ssl: شهادات البدل

تم إنشاؤها على ١٠ أكتوبر ٢٠١٧  ·  16تعليقات  ·  مصدر: auto-ssl/lua-resty-auto-ssl

مرحبا،
أتساءل فقط كم من الوقت سيستغرق التحديث لإصدار أحرف البدل في شهر يناير؟ هل تعتقد أنه تغيير كبير؟

enhancement

التعليق الأكثر فائدة

مما أفهمه من الكود ، هذا غير ممكن. يمكننا بسهولة إضافة الشيكات التالية على الرغم من ذلك في واجهة التخزين ، لكل sub.domain.tld :

  • sub.domain.tld:latest - الحالي
  • *.domain.tld:latest
  • *.sub.domain.tld:latest

بهذه الطريقة ، يمكن أن يكون لدينا خطوة أولى نحو أحرف البدل ، مع دعم الشهادات التي تم إنشاؤها مسبقًا فقط في الوقت الحالي. بعد القيام بذلك ، يمكننا المضي قدمًا واتخاذ قرار بشأن طريقة لطيفة لدعم إنشاء شهادات أحرف البدل ، إذا قررنا أننا نريد القيام بذلك.

تحرير: يسعدني أن أخدش تنفيذ ما ورد أعلاه.

ال 16 كومينتر

أنا لست مشرف إعادة شراء ولكن يجب أن أقول إن هذا ليس بالأمر السهل الإضافة. ستتطلب شهادات حرف البدل LE التحقق من صحة DNS ، وفي الوقت الحالي تستخدم lua-resty-auto-ssl التحقق من صحة http.

سيكون التحقق من صحة DNS أمرًا رائعًا ، حتى لو لم تفكر في استخدام أحرف البدل. بعض الأفكار:

  • نحتاج إلى انتظار الجفاف للحصول على دعم ACMEv2 أولاً: مجفف # 420
  • المجففة تدعم بالفعل (ACMEv1) تحدي dns-01 . يبدو تحدي DNS-01 في مسودة ACMEv2 الحالية متطابقًا أو متطابقًا تقريبًا معي.
  • يوفر الخطاف deploy_challenge للمجفف مجالًا ورمزًا ليتم كتابتهما في سجل TXT.
  • نظرًا لأننا لا نعرف كيف يدير المستخدمون سجلات DNS الخاصة بهم ، يجب أن يكون هذا الجزء عامًا.

    1. دعم واجهات برمجة تطبيقات DNS الشائعة. يجب علينا على الأقل إضافة بنية أساسية لدعم واجهات برمجة التطبيقات "القياسية" مثل تلك التي توفرها PowerDNS أو CloudFlare أو حتى nsupdate. في هذه الحالة ، هناك حاجة فقط إلى نوع من رمز المصادقة المميز في إعداداتنا.

    2. يجب أن يحتاج المستخدمون إلى حل مخصص لتعيين تلك السجلات ، مثل التحدث إلى واجهة برمجة تطبيقات خاصة أو حتى استدعاء نصوص برمجية قذرة. يجب أن نقدم رابطًا عامًا لتلك الحالات:

      -- Define a function to store the validation tokens for DNS verification -- by let's encrypt in your DNS setup. auto_ssl:set("deploy_dns_challenge", function(domain, token) -- talk to your DNS-API to create a new TXT record _acme-challenge.$domain with value $token end)

  • تفترض طبقة التخزين حاليًا أنه يمكنها استخدام النطاق الكامل كمفتاح للحصول على الشهادة. هذا لن يكون صحيحا بعد الآن. فكرتي الأولى هي تخزين أحرف البدل كـ parentdomain.com:wildcard:latest وجعل طبقة التخزين تتحقق من هذا المفتاح إذا لم يتم العثور على شهادة ملموسة.

أسئلة:

  1. كيف نعرف ما إذا كان يجب إنشاء شهادة عادية أو شهادة بدل؟ وظيفة جديدة يحددها المستخدم is_wildcard_domain ؟ قيمة عائد جديدة للقيمة allow_domain الموجودة؟
  2. هل ندعم التحقق من صحة DNS (لأحرف البدل) و HTTP (للشهادات العادية) في نفس الوقت ، أم فقط DNS لكليهما؟ لاحظ أن HTTP قد يكون أسرع كثيرًا ، نظرًا لأننا نتحكم في جميع الأجزاء المتحركة.

لمعلوماتك: تتوفر الآن نقطة نهاية مرحلية لـ ACMEv2 . :)

يبدو تحدي DNS-01 في مسودة ACMEv2 الحالية متطابقًا أو متطابقًا تقريبًا معي.

أنت على حق :-) لم يتغير شيء في تحدي DNS-01 بين V1 و V2 API.

لمعلوماتك: على الأقل الإصدار المطور من المجففة يدعم الآن ACMEv2 بالإضافة إلى شهادات البدل. في حال أراد أي شخص بدء العمل على هذا ، فهذه فرصتك الآن ؛)

أعتقد أن إجراء resty-auto-ssl للتحقق من صحة DNS خارج النطاق تمامًا.
ومع ذلك ، فمن الممكن أن نجعل resty-auto-ssl يعود إلى شهادة حرف بدل مهيأة "خارج النطاق".
على سبيل المثال ، سأقوم بإعداد خدمتي باستخدام bind9 و certbot لعمل شهادة بدل لمجال. في الوقت الحالي ، لا أعتقد أنه يمكنني إخبار resty-auto-ssl باستخدام شهادة البدل تلك بدلاً من محاولة إنشاء واحدة.

تحرير: حسنًا ، هذا ليس خارج النطاق. لم أكن أعرف أنه يمكن تكوين التجفيف باستخدام البرامج النصية اليدوية للتوصيل بواجهة برمجة تطبيقات DNS مخصصة ...

هل هناك طريقة لتخزين شهادة LE بدل تم إنشاؤها يدويًا إلى Redis بحيث يمكن لـ resty-auto-ssl استخدامها؟

مما أفهمه من الكود ، هذا غير ممكن. يمكننا بسهولة إضافة الشيكات التالية على الرغم من ذلك في واجهة التخزين ، لكل sub.domain.tld :

  • sub.domain.tld:latest - الحالي
  • *.domain.tld:latest
  • *.sub.domain.tld:latest

بهذه الطريقة ، يمكن أن يكون لدينا خطوة أولى نحو أحرف البدل ، مع دعم الشهادات التي تم إنشاؤها مسبقًا فقط في الوقت الحالي. بعد القيام بذلك ، يمكننا المضي قدمًا واتخاذ قرار بشأن طريقة لطيفة لدعم إنشاء شهادات أحرف البدل ، إذا قررنا أننا نريد القيام بذلك.

تحرير: يسعدني أن أخدش تنفيذ ما ورد أعلاه.

akalipetis هل حاولت معرفة ما إذا كان الإعداد

ssl_options.fullchain_der
ssl_options.privkey_der

سيعمل في allow_domain؟
إذا كان ذلك ممكنًا ، فيمكنك إجراء طلب redis في allow_domain وتعيينها.

بالنسبة للسجل الذي أصبت به للتو ، أستخدم lua-resty-auto-ssl لإنشاء شهادات لصفحات حالة المجال المخصصة على خدمة المراقبة الخاصة بي ، وسيستخدم معظم الأشخاص نطاقاتي الخاصة مثل xxxx.status.updown.io مما يجعلها أكثر فاعلية لاستخدام شهادة بدل.

لقد حققت ذلك باستخدام allow_domain lambda لتخطي إنشاء الشهادة مقابل *status.updown.io :

auto_ssl:set("allow_domain", function(domain)
  return not ngx.re.match(domain, "status.updown.io$", "ijo")
end)

ثم قدم حرف البدل باعتباره الشهادة الاحتياطية الافتراضية:

ssl_certificate /etc/letsencrypt/live/status.updown.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.updown.io/privkey.pem;

لقد قمت بإنشاء الشهادة يدويًا باستخدام تحدي DNS مع:

sudo certbot certonly --manual -d *.status.updown.io --agree-tos --no-bootstrap --manual-public-ip-logging-ok

لست متأكدًا من أن الأمر يستحق قضاء وقتي في أتمتة هذا لأنه يبدو معقدًا مع تحدي DNS. إنها تقنية منخفضة ولكنها تعمل كما هو متوقع :)

هذا حل رائع ، وهو حل ينطبق على العديد من حالات الاستخدام.
ومع ذلك ، ضع في اعتبارك أن تحدي DNS أصبح سهلاً للغاية باستخدام https://github.com/AnalogJ/lexicon !
إنه يعمل بشكل جيد ويدعم الكثير من مقدمي الخدمة. حتى أنني أضفت واحدًا منهم والعملية سهلة للغاية.

kapouer شكرًا على الإكرامية حول lexicon ، سأضعها في الاعتبار إذا كنت أريد الأتمتة ؛)

بالنسبة للسجل الذي أصبت به للتو ، أستخدم lua-resty-auto-ssl لإنشاء شهادات لصفحات حالة المجال المخصصة على خدمة المراقبة الخاصة بي ، وسيستخدم معظم الأشخاص نطاقاتي الخاصة مثل xxxx.status.updown.io مما يجعلها أكثر فاعلية لاستخدام شهادة بدل.

لقد حققت ذلك باستخدام allow_domain lambda لتخطي إنشاء الشهادة مقابل *status.updown.io :

auto_ssl:set("allow_domain", function(domain)
  return not ngx.re.match(domain, "status.updown.io$", "ijo")
end)

ثم قدم حرف البدل باعتباره الشهادة الاحتياطية الافتراضية:

ssl_certificate /etc/letsencrypt/live/status.updown.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.updown.io/privkey.pem;

لقد قمت بإنشاء الشهادة يدويًا باستخدام تحدي DNS مع:

sudo certbot certonly --manual -d *.status.updown.io --agree-tos --no-bootstrap --manual-public-ip-logging-ok

لست متأكدًا من أن الأمر يستحق قضاء وقتي في أتمتة هذا لأنه يبدو معقدًا مع تحدي DNS. إنها تقنية منخفضة ولكنها تعمل كما هو متوقع :)

أقوم أيضًا بإجراء نفس النوع من التحقق من المجال لتطبيقنا. إذا كان مضيف البوابة الإلكترونية للمستخدم يحتوي على أحد المجالات "الخاصة بنا" ، فإننا نعود فقط إلى استخدام شهادات أحرف البدل من مرجع مصدق ثابت. لكني أحب فكرتك في الاستمرار في استخدام LE وإنشاء أحرف البدل يدويًا.

سأختبر هذا.

تحديث
حسنًا ، هذا هو الحل الذي يفعل ما أريد حقًا. المكون الإضافي cloudflare. المستندات جيدة جدًا. لقد عملت في غضون ساعة أو ساعتين.

https://certbot-dns-cloudflare.readthedocs.io/en/stable/

jarthod أي حل آخر لأتمتة هذا؟ تذكر تجديد حرف البدل كل 3 أشهر هو ألم في الواقع.

jarthod أي حل آخر لأتمتة هذا؟ تذكر تجديد حرف البدل كل 3 أشهر هو ألم في الواقع.

ليس من جانبي ، ما زلت أستخدم هذا وأقوم بالتجديد اليدوي كل 3 أشهر. التذكر ليس مشكلة بالنسبة لي لأنني أستخدم خدمتي (updown.io) لمراقبة نقطة النهاية وتنبهني عندما توشك الشهادة على الانتهاء.

أنا أيضا مستخدم لخدمتك. على أي حال ، تقدمت وحصلت على حرف البدل التقليدي لمدة عام واحد SSL.

الآن خدمتك لديها وظيفة تذكرني العام المقبل 😄

بتاريخ 03-أكتوبر -2020 ، في الساعة 10:30 مساءً ، كتب Adrien Rey-Jarthon [email protected] :


jarthod أي حل آخر لأتمتة هذا؟ تذكر تجديد حرف البدل كل 3 أشهر هو ألم في الواقع.

ليس من جانبي ، ما زلت أستخدم هذا وأقوم بالتجديد اليدوي كل 3 أشهر. التذكر ليس مشكلة بالنسبة لي لأنني أستخدم خدمتي (updown.io) لمراقبة نقطة النهاية وتنبهني عندما توشك الشهادة على الانتهاء.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بإلغاء الاشتراك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات