سؤال

أحاول إعداد خوادمنا للسماح بحركة المرور عبر SSL.أدرك أن طبقة المقابس الآمنة (SSL) لا تعمل مع Name Virtual Host، ولكن لدينا جميع خوادم Apache الخاصة بنا على أجهزة افتراضية ذات عناوين IP خاصة مخصصة.لدينا جهاز افتراضي أساسي يحتوي على إعداد mod_proxy لتوجيه حركة المرور إلى الأجهزة الافتراضية المناسبة.

ومع ذلك، من أجل توجيه حركة مرور https، نحتاج إلى تثبيت الشهادة على الوكيل بالإضافة إلى جهاز vms.لدينا شهادة بدل يمكن استخدامها عبر جميع مضيفينا.يبدو أن كل شيء يعمل بشكل صحيح، ولكنني أتلقى ما يلي في سجلات Apache للوكيل:

[تحذير] الحرف الأول:تعارض IP/منفذ خادم SSL:host1.domain.com:443 (/etc/Apache2/sites-enabled/host1:1) مقابل.host2.domain.com:443 (/etc/Apache2/sites-enabled/host2:1)

توجد إحدى رسائل الخطأ هذه لكل مضيف قمنا بإعداده على الوكيل.تم نشر إعداد المضيف الظاهري الخاص بنا للوكيل أدناه:

<VirtualHost ipaddress:443>
    ServerName host1.domain.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / https://privateip:443/
    ProxyPassReverse / https://privateip:443/

    SSLProxyEngine on
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

هل هناك أي طريقة يمكنني من خلالها تشغيل هذا؟

هل كانت مفيدة؟

المحلول

وهذا يبدو وكأنه اباتشي يحذر لك أن لديك أقسام <VirtualHost> متعددة مع عنوان IP نفسه وميناء ... بقدر الحصول على عمل دون تحذيرات، أعتقد أنك سوف تحتاج إلى استخدام شيء من هذا القبيل إشارة اسم الخادم (SNI )، وسيلة لتحديد اسم المضيف طلبت كجزء من مصافحة SSL. في الأساس فإنه يتيح لك القيام استضافة الظاهري القائم على اسم على SSL، لكنني لست متأكدا من مدى انها مدعومة من قبل المتصفحات. البعض من شيء من هذا القبيل SNI، كنت محدودة أساسا إلى اسم نطاق تمكين SSL واحد لكل عنوان IP الذي فضح إلى شبكة الإنترنت العامة.

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

نصائح أخرى

وبقدر ما أعرف، اباتشي تدعم SNI منذ النسخة 2.2.12 للأسف الوثائق لا تعكس بعد هذا التغيير.

http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI حتى ذلك هو انتهى

قد تتمكن من استبدال:

VirtualHost ipaddress:443

مع

VirtualHost *:443

ربما تحتاج إلى القيام بذلك على جميع مضيفيك الفاضلين.

من المحتمل أن يتم مسح تلك الرسالة.دع توجيه ServerName يقلق بشأن توجيه طلب الرسالة.

مرة أخرى، قد لا تتمكن من القيام بذلك إذا كان لديك عدة أسماء مستعارة لـ IP لنفس الجهاز.

وسيكون إدخال VirtualHost تبدو مثل هذا:

NameVirtualHost IP_Address:443

<VirtualHost IP_Address:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt    # Where "ca" is the name of the Certificate
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin webmaster@domain_name.com
    DocumentRoot /var/www/html
    ServerName www.domain_name.com
    ErrorLog logs/www.domain_name.com-error_log
    CustomLog logs/www.domain_name.com-access_log common
</VirtualHost>

وأباتشي لا يدعم SSL على المضيف الظاهري القائم على اسم، فقط على المضيفين الظاهري القائمة على الملكية الفكرية.

المصدر: أباتشي 2.2 SSL التعليمات السؤال لماذا هو ليس من الممكن استخدام اسم القائمة على استضافة الظاهرية لتحديد المضيفين الظاهري SSL مختلف؟

وعلى عكس SSL، TLS مواصفات تسمح للمضيفين القائم على اسم (SNI كما ذكر من قبل شخص آخر)، ولكن أباتشي لا يدعم هذه الميزة حتى الآن. ومن المفترض سوف في إصدار مستقبلي عندما جمعت ضد بينسل 0.9.8.

وأيضا، mod_gnutls يدعي لدعم SNI، ولكني أبدا في الواقع حاولت ذلك.

أولا تحتاج NameVirtualHost الملكية الفكرية: 443 في لك ملف التكوين! ربما لديك واحدة مع 80 في نهاية المطاف، ولكن سوف تحتاج أيضا واحدة مع 443.

وثانيا كنت في حاجة الى شهادة * .domain (البدل) (من الممكن أن يجعل واحدة)

والثالث يمكنك جعل شبكات something.domain الوحيدة في الملكية الفكرية واحدة (بسبب الشهادة)

ويجب إضافة أدناه جزء لتمكين وظيفة NameVirtualHost مع IP معين.

NameVirtualHost IP_Address:443
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top