Lua-resty-auto-ssl: تنفيذ بروتوكول Pure Lua ACME

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

أفتح هذه المشكلة لتتبع فكرة تطبيق عميل Lua ACME خالص (بدلاً من الاعتماد على الجفاف). لست متأكدًا مما إذا كان / متى سيحدث هذا ، لكنني اعتقدت أن الأمر يستحق وجود مشكلة للرجوع إليها والقدرة على مناقشتها.

كانت هذه الفكرة تدور منذ الإنشاء الأولي لـ lua-resty-auto-ssl ، كما لاحظ قسم TODO في README منذ البداية:

نحن نعتمد حاليًا على التجفيف كعميل Let's Encrypt. يتم استدعاؤها بطريقة غير محظورة عبر sockproc ، ولكن قد يكون من الأسهل استبدال هذا الأسلوب في النهاية بعميل OpenResty Let's Encrypt الأصلي يومًا ما.

بالنسبة للجزء الأكبر ، فإن الاستخدام المجفف قد خدمنا جيدًا ، وسمح لنا بإلغاء تحميل جميع أعمال بروتوكول ACME الأساسية لتسجيل الشهادات باستخدام Let's Encrypt. ومع ذلك ، فإن الاعتماد على lua-resty-shell و sockproc يضيف أيضًا تعقيدًا إلى lua-resty-auto-ssl لعدة أسباب:

  • يتطلب خادم HTTP محليًا إضافيًا يعمل على المنفذ 8999 المستخدم للاتصال بين البرامج النصية للقذيفة المجففة و lua-resty-auto-ssl.
  • يمكن أن يؤدي تشغيل sockproc في الخلفية والحصول على الأذونات الصحيحة إلى بعض مشكلات التثبيت / التشغيل غير التقليدية. بينما في معظم الأحيان ، يجب أن تكون الأشياء تلقائية وأعتقد أن هذا يعمل مع معظم المستخدمين ، يمكن أن تؤدي عمليات التثبيت المختلفة المختلفة إلى مشكلات حالة متطورة (من المحتمل إرجاع عدد لائق من مشكلات GitHub إلى هذا ، ولكن إليك بعضًا عشوائيًا الأمثلة التي يبدو أنها يمكن أن تكون مرتبطة: https://github.com/GUI/lua-resty-auto-ssl/issues/121 ، https://github.com/GUI/lua-resty-auto-ssl/issues / 114 ، https://github.com/GUI/lua-resty-auto-ssl/issues/98
  • يتطلب تثبيت sockproc عملية إنشاء تتضمن make و gcc ، مما يعني أنه لا يمكن تثبيت lua-resty-auto-ssl إلا عبر LuaRocks ، وليس OpenResty's OPM: https://github.com/GUI/lua-resty-auto-ssl/ القضايا / 45 بينما لا يوجد خطأ في LuaRocks ، وقد تدعم OPM في النهاية الوحدات التي تتطلب التجميع ، سيكون من الجيد أن تكون قادرًا على دعم عمليات تثبيت OPM.

مع الانتهاء من بروتوكول ACME v2 الآن ، أصبحت هذه الفكرة في ذهني بشكل متزايد. من ناحية أخرى ، سيتطلب إنشاء تطبيق عميل Lua ACME قدرًا مناسبًا من العمل الجديد ، لكن احتمالية القدرة على التخلص من الاعتماد على sockproc جذابة (لا يعني ذلك وجود أي خطأ في sockproc ، ولكنه يعقد الإعداد لدينا فقط / التركيب والعمارة).

إذا أردنا السير في هذا المسار ، فإن فكرتي العامة كانت إنشاء 1 أو 2 من مكتبات Lua الجديدة:

  • ارتباطات OpenSSL: نحتاج إلى طريقة ما لإنشاء شهادات جديدة مباشرةً في Lua والقيام بأشياء OpenSSL ذات المستوى الأدنى (التي يتم تجفيفها حاليًا باستخدام أدوات سطر أوامر openssl). يمكن استخدام luaossl ، على الرغم من أن هذه وحدة قائمة على C ، مما يعني أنه لا يمكن تثبيتها حاليًا إلا عبر LuaRocks (لذلك لا يوجد OPM). لقد كنت أتجول مؤخرًا مع وحدة lua-openssl-ffi لأداء كل شيء في OpenSSL عبر FFI (مما يعني أنه لا يلزم تجميع أي شيء في لغة C ، لذلك يمكن تثبيته عبر OPM).
  • عميل ACME: كانت فكرتي هي إنشاء مكتبة lua-resty-acme تستخدم مكتبة OpenSSL و lua-resty-http لتنفيذ بروتوكول ACME v2 بالفعل. لا يزال lua-resty-auto-ssl موجودًا كمكتبة ذات مستوى أعلى تستخدم lua-resty-acme (لن يقوم lua-resty-acme إلا بتنفيذ البروتوكول ، ويلعب دورًا مشابهًا للجفاف ، بينما lua-resty-auto-ssl سيظل يؤدي كل تكامل nginx والتسجيل المستند إلى SNI وتخزين الشهادات وما إلى ذلك).

لذا مرة أخرى ، لست متأكدًا مما إذا كان / متى سيحدث هذا ، لكنني على الأقل أردت الحصول على بعض هذه الأفكار أخيرًا بصيغة أكثر واقعية.

enhancement

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

أعتقد أن هذه ستكون فكرة رائعة. سيؤدي التخلص من sockproc والجفاف إلى تقليل تعقيد العملية بأكملها ، مما يؤدي على الأرجح إلى عدد أقل من الأخطاء (على سبيل المثال ، الخطأ الأخير المتعلق باتفاق شروط Let's Encrypt في حالة الجفاف).

👍

ال 2 كومينتر

أعتقد أن هذه ستكون فكرة رائعة. سيؤدي التخلص من sockproc والجفاف إلى تقليل تعقيد العملية بأكملها ، مما يؤدي على الأرجح إلى عدد أقل من الأخطاء (على سبيل المثال ، الخطأ الأخير المتعلق باتفاق شروط Let's Encrypt في حالة الجفاف).

👍

هل قمت بفحص هذا المشروع؟ https://github.com/fffonion/lua-resty-acme

يستخدم هذا المشروع الواجهة الخلفية opensl المستندة إلى مؤسسة مالية أجنبية.

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

القضايا ذات الصلة

jmvbxx picture jmvbxx  ·  6تعليقات

sahildeliwala picture sahildeliwala  ·  16تعليقات

serathius picture serathius  ·  21تعليقات

prionkor picture prionkor  ·  11تعليقات

ronaldgrn picture ronaldgrn  ·  8تعليقات