2016-05-27 26 views
0

我試圖找出是否HTTPS在地址欄,因爲我有HAPROXY之前SSL終止,但我希望HAPROXY做重定向,如果它是HTTP(有點奇怪的請求我知道)。檢測HTTPS沒有SSL終止

我試過: 重定向方案HTTPS如果{} ssl_fc

但它在一個永無止境的循環,因爲它的數據包已經沒有SSL結束了!有沒有另一種方法來獲取地址欄上的前綴?它也可以用於多個域,所以試圖用通配符來做到這一點。

回答

0

我面前有HAProxy的

我假定你的意思SSL終止上ELB SSL終結?

如果是這樣的:

redirect scheme https unless { hdr(x-forwarded-proto) -m str https } 

ELB在HTTP模式下增加了X-Forwarded-Proto: https對SSL連接。否則,該值設置爲http。生成一個重定向,除非頭部值符合你的期望。

+0

這正是我想要做的,並且你的修復工作完美,謝謝。我只是沒有把那個包裝更多的通用修復。 – AndrewL

+0

不,就是這樣。 'ssl_fc'(僅在** f ** ront-end ** c **連接上的SSL/TLS)只能提取HAProxy本身的前端套接字。這在瀏覽器直接連接到代理服務器時起作用,但它並不知道前面是否有設備正在終止SSL,因此標頭提供了提示。 –