閒聊

IIs 透過reverse proxy上https

我最近遇到一個超級怪的需求

因為有一個網站需要上https 他是win server + IIS + ASP的環境

而憑證那些都有了,問題是他的網站程式碼寫死http

(我看應該是他寫死80port拉)

麻煩的地方在於它是套裝網站,程式碼無敵的多。第二就是程式碼還部份加密

我實在很搞不懂程式碼加密加一部分的是怎樣的想法。

解回來改是不難拉,但是量實在太多了且我也不想去改他們的程式,而對方又不想繼續維護了

就卡在這了。

 

所以我的想法是 我一樣網站還是可以上https 但是透過反向代理來解決掉程式碼的這部分問題

反向代理對外一樣跑https 而對內轉過來就回到原本的http走80 port

結果可行!!

簡單觀念就是要先安裝IIS上的ARR(Application Request Routing) 現在出到2.5了

還有URL REWRITE

之後寫URL rewrite規則就行了

假如你有網站是 https://aaa.com.tw 可以把他轉到內部Ip是192.168.1.2

可以直接改web.config也可以 把她加入

<system.webServer>

<rewrite>
<rules>
<rule name=”httpstohttp”>
<match url=”^(.*)” />
<conditions>
<add input=”{HTTP_HOST}” pattern=”^aaa.com.tw$” />
</conditions>
<action type=”Rewrite” url=”http://192.168.1.2/{R:1}” />
</rule>
</rules>
</rewrite>

</system.webServer>

這樣就過關了

 

參考:在IIS7中應用Application Request Routing配置反向代理

如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制

 

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)