إنشاء روابط HTTPS على المنفذ 80

أحتاج إلى تنفيذ الخادم بحيث يستمع إلى المنفذ 80 ولكنه يعطي روابط عبر HTTPS. كيف يمكنني حل هذه المشكلة؟

يعمل تكويني الحالي على النحو التالي، وجميع الروابط هي عبر HTTP:
expose:
# - “443:443” # https
- “80:80” # https

لقد حاولت إعادة التسمية إلى 443 لكنني فشلت.

لا أعتقد أن ذلك ممكن.

يُعد Let’s Encrypt صارمًا للغاية، لذا لا أعتقد أنهم سيوفرون شهادات SSL لأي منفذ غير 443، وذلك لأسباب أمنية.

ربما تحتاج إلى تفعيل إعداد الموقع فرض https؟

هل يمكنك شرح سبب حاجتك للقيام بذلك؟

هناك خادم داخلي يستضيف Discourse وهو مفتوح للاستماع على المنفذ 80. عندما يطلب زائر موقعًا، يفتح دائمًا عبر HTTPS (إعادة توجيه)، لكن جميع الروابط تظهر بـ HTTP. لا أتحكم في هذه البنية التحتية، وبالإضافة إلى المنفذ 80، لا أملك أي طريقة أخرى للخروج.

أخشى أن هذا لن ينجح في حالتي، لأنني لا أعمل مع https فعليًا

يمكنني إيقافه، لكن يبدو لي أن هذا لن يحل المشكلة، لأن تمكين HTTPS على المنفذ 80 مستحيل بسبب SSL.

لا يدعم Discourse التشغيل على المنافذ غير القياسية.

ويشمل ذلك تشغيل https على المنفذ 80.

هل تقصد أن لديك إعداد وكيل عكسي في مكان آخر يتعامل مع SSL لجميع مواقعك، بما في ذلك Discourse؟

هل جربت ذلك؟

إذن ما الذي تحاول فعله؟

ألا يعني ذلك أنك تريد أن تكون الروابط في الصفحات المقدمة عبر https، وأنك تتعامل مع https بطريقة أخرى؟

آسف، لم أفهم رسائلك بالكامل.

لقد قلت:

أحتاج إلى تنفيذ الخادم بحيث يستمع إلى المنفذ 80 ولكنه يعطي روابط عبر https. كيف يمكنني حل هذه المشكلة؟

إذا فهمت قصدك حرفيًا، فأنت تريد إعادة توجيه جميع حركة مرور HTTP على المنفذ 80 إلى المنفذ 443 HTTPS، ولا تريد إرسال حركة مرور HTTPS على المنفذ 80، بل فقط إعادة توجيه المنفذ 80 إلى المنفذ 443.

في هذه الحالة، هذا هو الإعداد المعتاد لمعظم خوادم الويب؛ وعلى سبيل المثال، إذا استخدمت LetsEncrypt لإعداد حركة المرور على المنفذ 443 باستخدام Apache2 أو nginx، فسيطلب منك LetsEncrypt ما إذا كنت تريد إعداد هذا الإعادة التوجيه، وسيفعل ذلك نيابةً عنك.

كما سأل @Falco، ما هو إعدادك الدقيق؟ هل تشغّل خادم ويب مثل nginx أو Apache2 أمام Discourse كوكيل عكسي؟

في هذه الحالة، عند إعداد LetsEncrypt على nginx أو Apache2، سيقوم برنامج إعداد LetsEncrypt بإعداد “إعادة توجيه جميع حركة مرور HTTP إلى HTTPS” لك (إذا اخترت “نعم” عند ظهور مربع حوار الإعداد).

نعم، فهموني بشكل صحيح


لم أعد أستطيع فتح أي منافذ أخرى، وهناك وكيل عكسي يجعل الموقع يستخدم HTTPS، لكن الروابط داخل Discourse لا تتأثر.

Hmm، تيار المخرجات الخاص بي من Discourse هو دائمًا 80. لا يمكنني الاستماع إلى منافذ أخرى، ولا يوجد شيء يتعلق بـ LetsEncrypt في هذا الشأن.

مرحبًا @anton21m

نعم، إذن نفهم الآن بوضوح أكثر أن لديك وكيل عكسي أمام الحاوية الخاصة بك.

ما هو الوكيل العكسي الذي تستخدمه، nginx؟ أم Apache2؟

الخادم: nginx/1.14.1
لكنني لا أملك حق الوصول إليه
https://forum.qpay.uz/

يمكنك ملاحظة أن جميع الروابط تستخدم بروتوكول HTTP

موقع Discourse الجديد يبدو نظيفًا وجميلًا يا @anton21m

نحن نفهم تمامًا وضعك الآن. شكرًا لك.

إذا لم يكن لديك وصول إلى nginx أو النظام؛ فعليك أن تطلب من مسؤول النظام تثبيت LetsEncrypt وإضافة شهادة SSL إلى موقعك.

هذا هو الخيار الوحيد المتاح لك إذا كنت ستبقى مع مزود الاستضافة هذا ولا تملك وصولًا إلى nginx.

نأسف لإبلاغك بذلك. ربما تفكر في مزود استضافة آخر؟

من الواضح إذن أن هذا مستحيل !!!
أود إيجاد حل مثل هذا

الحل “المطلوب” الذي تتحدث عنه هو بالضبط ما نصحناك به؛ أي إعداد خادم الويب الخاص بك لإعادة توجيه حركة المرور على المنفذ 80 إلى المنفذ 443.

وهذا الحل يتطلب منك تعديل خادم الويب، تمامًا كما تم نصحك به.

لذلك، يا @anton21m، نبدأ بالدوران في حلقة مفرغة…

ولكن دعني أكرر ذلك مرة أخرى، فقط من أجلك يا @anton21m :slight_smile: :slight_smile: لأننا نريد لك النجاح!

أنت بحاجة إلى الوصول إلى خادم الويب وتثبيته بحيث يتم إعادة توجيه حركة المرور على المنفذ 80 إلى المنفذ 443، وتحتاج إلى إعداد شهادات SSL على نفس خادم الويب. إذا لم يسمح لك موفر الاستضافة بذلك، فيجب عليك الانتقال إلى موفر استضافة آخر.

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

أتمنى أن يكون هذا مفيدًا.

موصى به:

يجب أن تتمكن من تحقيق ذلك من خلال تمكين إعداد الموقع force_https في Discourse.