我最近遇到一個超級怪的需求
因為有一個網站需要上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 機制