अमेज़ॅन इलास्टिक लोड बैलेंसर (ELB) एक HTTP हेडर का समर्थन करता है जिसे X-FORWARDED-PROTO कहा जाता है। ELB के माध्यम से जाने वाले सभी HTTPS अनुरोधों में "HTTPS" के बराबर X-FORWARDED-PROTO का मूल्य होगा। HTTP अनुरोधों के लिए, आप सरल रीराइट नियम का पालन करके HTTPS को बाध्य कर सकते हैं। मेरे लिए यह ठीक काम करता है!
अमरीका की एक मूल जनजाति
आप अपनी .htaccess फ़ाइल में निम्न पंक्तियाँ जोड़ सकते हैं:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
या यदि आप एक ही EC2 वेब सर्वर में कई डोमेन के प्रबंधन के लिए vhost.conf का उपयोग करते हैं तो आप निम्नलिखित को vhost.conf में जोड़ सकते हैं (इसे उस डोमेन में जोड़ें जिसे आप इसके लिए https का उपयोग करना चाहते हैं):
<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
...
</VirtualHost>
आईआईएस
IIS Url-Rewrite मॉड्यूल स्थापित करें, कॉन्फ़िगरेशन GUI का उपयोग करके इन सेटिंग्स को जोड़ें:
<rewrite xdt:Transform="Insert">
<rules>
<rule name="HTTPS rewrite behind ELB rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$" ignoreCase="false" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{SERVER_NAME}{URL}" />
</rule>
</rules>
</rewrite>
और पढ़ें यहाँ