原來Synology NAS可以輕鬆架設有 SSL 憑證的網站
現今的NAS似乎已不是我們想像中的NAS而已,各家廠商所推出的NAS功能越來越多、速度越來越快且有支援更多的服務,之前挨踢路人甲想將淘汰的舊PC手動打造一台免費的多功能NAS,不過體積龐大且不美觀,自從購入Synology NAS後,除了基本的NAS儲存服務外,透過外掛套件的擴充,不管BT、Web網站、電子郵件、FTP、私有雲、印表機伺服器都輕鬆加設,尤其是套件外掛運用相當廣泛,挨踢路人甲部落格的備援機也是利用群暉Synology NAS架設的,其實只要你有一台Synology NAS,就已經具備了架站的基本環境,讓挨踢路人甲來告訴你,使用NAS架設SSL憑證的網站是多麼輕鬆的事。
往往是架站的應用天堂都是租用虛擬主機,架站基本的Apache、PHP與MySQL等程式早已內建,去掉了一些繁瑣安裝過程,讓一般不懂程式語言的人也可以輕鬆快速的架站,搭配cPanel的簡易操作介面,提供需多應用服務套件,一鍵輕鬆安裝到底,架設真的一點都不難哦!現今的NAS似乎已不是我們想像中的NAS而已,各家廠商所推出的NAS功能越來越多、速度越來越快且有支援更多的服務,只要有一台Synology NAS,輕鬆架設網站不再是專業人士的專利。
架一個網站除了網頁伺服器外,資料庫、搭配的語法(ASP.NET或PHP)…等的運用也是不可或缺的,PHP語法的免費資源相當眾多,往往是架站的應用天堂,如果你有多餘的一台電腦或虛擬機器,則可以參考Windows架站包-XAMPP 1.8.1多國語言版的XAMPP架站包,Xapp集成了Apache、PHP、MySQL、Perl等工具的網頁伺服器安裝包,去掉了一些繁瑣安裝過程,讓一般不懂程式語言的人也可以輕鬆快速的架站,目前自行DIY並利用架站包大都是測試與研發用居多,租用虛擬主機才是架站的應用天堂,不過費用也是不小的支出,假如你有一台群暉Synology NAS的設備,那可能就改觀了,因為要空間有空間,要伺服器掛個套件即可解決,一台NAS就可輕鬆解決你的網站架設的需求。
架站的基本環境
架站一定是專業人士的專利嗎?Windows系統是一般最常使用的作業系統,因為其擁有最容易上手的操作介面,雖然Windows有提供IIS(Internet Information Services)服務,但架一個網站除了網頁伺服器外,資料庫、搭配的語法(ASP.NET或PHP)…等的運用也是不可或缺的,PHP語法的免費資源相當眾多,往往是架站的應用天堂,Synology NAS本身內建Apache、PHP、MySQL、Perl等工具的網頁伺服器,去掉了一些繁瑣安裝過程,讓一般不懂程式語言的人也可以輕鬆快速的建立架站環境。
DSM 6.0 起後可輕鬆的建立、匯入多張憑證至 Synology NAS,甚至支援免費的Let’s Encrypt憑證,且有效期間到期會自動更新憑證,透過虛擬主機的功能,您可以在 Synology NAS 上架設多個網站,你也不必擔心PHP與Apache版本的問題,Web Station支援多版本的選擇,讓你的網站再升級與相容性上更有彈性。
DSM系統將許多內建的服務都套件化了,請在「套件中心」→「公用程式」畫面上,選擇「Web Station」來安裝該套件,「Web Station」就是網站伺服器的基本套件。
新版的「Web Station」套件支援PHP與Apache版本的版本選擇,你不用擔心移植或網站伺服器的相容性,安裝完後開啟「Web Station」服務,在「狀態」內容畫面上,你可以看到後端套件的選擇與安裝,除了有Nginx、Apache與PHP的選擇外,還有版本之分,預設值只要安裝Nginx,所以挨踢路人甲將所有的後端套件全安裝,以方便比切換不同版本測試。
在「一般設定」畫面上,就可以選擇你已安裝的HTTP後端伺服器與PHP的版本,筆者覺得此功能相當不錯,這樣就可以不必侷限DSM系統內建的版本。
在PHP設定內,安裝curl、gd、mysqli、openss等擴充模組。
架站除了空間與網站服務外,資料庫也是不可或缺的服務,Synology NAS目前搭配的是MariaDB,所以也要安裝此資料庫套件。
MariaDB僅是純資料庫軟體,一般都會建議使用phpMyAdmin的資料庫管理工具,其中一個更大的優勢在於phpMyaAdmin跟其他PHP程式一樣在網頁伺服器上執行,但是您可以在任何地方使用這些程式產生的HTML頁面,讓使用者以web的方式來管理MariaDB資料庫,方便的建立、修改、刪除資料庫及資料表,Synology NAS的套件中心是玩家的天堂,重量級的PHP運用軟體大致都有,當然phpMyAdmin也不會缺席,進入套件中心安裝多國語言版的「phpMyAdmin」吧!
Synology NAS安裝後的MariaDB資料庫管理帳號是root,密碼是空白,想要架站建議密碼不要空白,所以使用phpMyAdmin進入使用者帳號畫面,修改root@localhost帳號的密碼。
接下來重點是要建立一個資料庫,例如下圖挨踢路人甲建立了一個utf8_unicode_ci格式的seandb的資料庫。
WordPress下載與上傳Synology NAS
架為了設有SSL憑證的網站,筆者以流行的wordpress部落網站為例,雖然Synology NAS的套件中也有提供Wordpress快速安裝套件,不過是英文版本且版本更新較慢,想要中文版與新版只好DIY囉!幸好過程還是蠻容易的,首先到WordPress正體中文的網頁下載最新的版本(目前是4.7.3)。
到Synology NAS的DSM系統介面上,開啟File Station並在「web」資料夾上建立一個目錄,此目錄就是你想要使用虛擬主機對應的目錄,例如筆者建立一個sean的資料夾。
下載的Wordpress解壓檔解壓縮後,並將所有的內容複製到web資料夾內的虛擬主機對應目錄內,也就是筆者剛剛建立的sean資料夾(可使用NAS的File Sataion檔案工具複製),下圖是複製後的畫面。
網域、虛擬主機與防火牆
使用IP來進入網頁,老實說有點遜,架個站沒有網域名稱有點說不過去,網域對架站來說是相當重要的前哨站,一般來說申請網域需付費的,且也不一定能申請自己想要的網域名稱,雖然所需的費用並不是高不可攀,但也是一筆小小地開銷,能省則省得原則下,有免費的當然最好,那「twbbs.org」絕對是最佳選擇。
有了網域後最大的優點就是,只要地球上有網路的地方,不論你搬到天涯海角,不用再記住那數字號碼,輕鬆的讓大家都還找得到你,不過免費一般都無法自訂二級網域,不想架在別人的二級網域下,付費是天經地義的事情。
想要有自己的網域郵件名稱嗎?你可以申請一個屬於自己的網域名稱,申請方式可以參考申請免費的網域TWBBS.ORG文章。當然你必須要有固IP位址(浮動固IP也可),或許有些使用動態IP,老實說真的不建議啦!
只要將網域指向wordpress安裝的目錄,往後在瀏覽器上輸入網域名稱就自動會轉向指定的資料夾,例如下圖在網站伺服器的虛擬主機分頁畫面上,將「sean.twbbs.org」網域指向「web/sean」資料夾,且指定HTTP後端伺服器與PHP的版本,按下確定後一可將Web下的一個目錄對應到一個網址。
Synology NAS的網站伺服器有支援虛擬主機的功能相當靈活,還可以指定HTTP後端伺服器與PHP的版本,假如NAS主機夠強悍,宛如雲端的虛擬主機一樣。
假如你的Synology NAS架設在IP分享器或防火牆內,那可能需要虛擬伺服器埠的轉換,每台防火牆與IP分享器的韌體不同,下圖是群暉的Synology Router RT2600ac無線路由器的連接埠轉送設定。
wordpress安裝與初始設定
接下來開始安裝囉!請開啟瀏覽器直接輸入自己的網域名稱(例如筆者設定的sean.twbbs.org),此時會直接對應到NAS內的虛擬主機指定的目錄,由於尚未初始設定過,此時會出現要設定wo-config.php檔,畫面上告訴你要進行資料庫連線的相關資訊,正常來說會自動一輸入的資料庫名稱來建立資料庫,但NAS上因考量安全性的問題,可能沒有那麼順利自動建立資料庫,所以才會在之前事先使用phpMyAdmin來建立資料庫,了解後直接按下〔衝吧〕。
畫面中請輸入事先建立的資料庫名稱與Mysql的root帳號與密碼,資料庫主機位址維持原先預設的「localhost」,確定完成後請按〔送出〕。
假如出現如下圖,表示沒有對web資料夾有存取權。
此時必須進入使用者群組內,將http群組的權限調整,預設值是針對web資料夾僅有讀取權限,請變更為可讀寫。
如果與後端的MySql有連線成功會出現如下畫面,請按下〔開始安裝〕來進行資料過的初始化動作。
接著請輸入您建立的部落格標題、帳號、密碼與管理員的郵件信箱,最後只要按下〔安裝WordPress〕即可開始安裝囉!
當你看到後台管理介面表示安裝成功。
既然都可以進入後台管理畫面,當然也可以看看自己的部落格畫面,試試看使用網域名稱來進入,你的部落格樣子就出現了。
在網域名稱後加入「/wp-admin」則是登入後台的畫面,當然是輸入你之前設定的帳號與密碼囉!
Synology NAS的SSL憑證支援
Google在2014年發表過採用HTTPS加密的網站有助搜尋的排名,當然主要是希望從搜尋結果中連出去的所有連結都是安全的,由此證明網路安全的重要性。什麼是SSL(Secure Sockets Layer)憑證服務,主要用於建立瀏覽器和網站伺服器之間的安全通道,可以提供伺服器身分鑑別及資料傳輸加密。 SSL認證機制有一個安全通道,確保網路使用者輸入的個人資料避免遭駭客截取或竄改。
Synology NAS的DSM系統有提供自家的自我簽屬憑證,就是由同一單位產生並認證簽署的憑證,換個角度說,認證單位即是申請單位 (在此為 Synology NAS),因此自我簽署憑證並非由第三方憑證授權單位核發,提供的伺服器身份資訊當然較不具公信力,一般只用來確保伺服器與已知使用者間的溝通管道。架上網站當然是要申請第三方憑證才有公信力,因此Synology NAS除了可以建立自我簽署憑證服務外,也提供免費的Let’s Encrypt 核發的憑證與其他營利性的第三方憑證授權單位申請憑證,專業的憑證申請有一定的複雜度,且所費不貲,筆者以免費的Let’s Encrypt來示範,Let’s Encrypt 為開放、廣受信賴的憑證授權機關,申請的過程簡單,唯一的缺點是核發的憑證有效期間為 90 天,時間過期須更新才能繼續使用,但你不用擔心,DSM系統會自動更新憑證,你只要留意你的Synology NAS 及路由器有開放80連接埠即可。
在還沒申請憑證前,使用https的網路安全傳輸協議來試試看,果然告訴你的網站安全憑證有問題,也就是確保伺服器與瀏覽器之間所有通過資料,沒有安全性的保障。
DSM系統的憑證功能是放在控制台上的安全性內。
切換到【憑證】分頁上點選〔新增〕。
接著選擇「新增憑證」按〔下一步〕來繼續。
Let’s Encrypt 為廣受信賴的免費憑證授權機關,請選擇「從Let’s Encrypt 取得憑證」在按〔下一步〕。
網域名稱欄位請輸入網域供應商註冊的網域(例如筆者的sean.twbbs.org),電子郵件欄位輸入用來註冊憑證的電子郵件信箱,若要允許單張憑證用在多個網域,則在主體別名欄位上輸入其他網域名稱。 由於筆者申請憑證只用於單個網域,所以主體別名欄位空白,如下圖所示。
取得憑證後,你可以看到憑證的核發單位、主體別名與使用範圍,使用範圍看不到任何網域,因為Synology DSM系統支援多個憑證與多服務,因此你必須指定哪些服務要使用哪個憑證。
到〔設定〕的畫面上,點選自己建立的網域,並在憑證欄位上選擇剛建立的憑證。
不用多久的時間憑證即生效,試著使用Edge瀏覽器並輸入開頭為https的網路安全傳輸協議,果然看到了一個鑰匙鎖的圖示。
再使用Chrome瀏覽器不但不會出現不安全的警告畫面,且看到網址前的綠色安全兩個字,感覺安心多了。