25 Mar 2021
有一台主機A有設定SSL,後面增加內網5台主機 B, C, D, E, F (API主機) 沒有SSL

有一台主機 A 有設定 SSL,後面增加內網 5 台主機 B, C, D, E, F ( API 主機 ) 沒有 SSL

當 A 要使用 B, C, D, E, F 主機的 API 時,會出現瀏覽器混合模式的警告阻擋

簡單講:

主機 A 使用內網主機 B, C, D, E, F 的 API 時,即使是內網,主機 B, C, D, E, F 也需要具有 SSL

原因是有一個檔案沒成功讀取時,或是非同源時,將會進入混合模式,所以不會顯示完整的 https

這個在之前專案時已經遇過相同的狀況

但是又不想要為內網 B, C, D, E, F 分別設定 SSL 解決這個問題

最後聽同事說明,可以直接在代理主機輸入要解析的 IP 和域名

但前提是該單位的 SSL 域名需要 * 萬用,例如下圖

目的是使用原本主機的 SSL 憑證,這一段才是重點

下圖是測試機的跳板機器 Win Server 設定

確定👌可以透過網址 https 執行了,但原本這台 xxx.xxx.xxx.156 是沒有 https 的

後續的動作就是在 B, C, D, E, F ( API 主機 ) 每一台主機的 /etc/hosts ( Linux ) 設定相同的設定檔,讓所有機器的解析的一致

當然,將來只要增加機器,之前機器的 hosts 都要再改一次 ( 含 Win Server 和 Linux 都要 )

概念如下圖

這就像我在公司的 Windows 主機上的 hosts 設定我自己 Mac 裡的專案一樣

這樣 Windows 主機也是可以透過網址連線到我的 Mac 主機中 ( 但專案埠號也是要加 )

這一段不是太大問題,也容易理解

重點是如何使用原本主機的 SSL 憑證,這一段才是重點

另外一個作法是,修改主要擁有 https 的 apache 設定檔

直接做每一台內網主機的代理

可以參考以下文章

https://richarlin.tw/blog/apache_reverse_proxy/

Tags: #

回上一頁