跳到主要內容

舊電腦變自架雲端儲存 nextcloud + samba 最詳細教學 帶你一步一步走 (Part5)

 


Part5

前言:
Part5 我們會為 nextcloud 進行 SSL 加密。這篇開始,相對原理會困難一些。如果你現在心情煩躁、剛失戀、買賣股票賠錢,警告,你都不適合觀看這篇文章。

OK 現在讓我們來開始吧。

SSL 加密,作用就是加密互聯網之間的通訊。所謂的通訊,包括你對外發送的任何資料,包括你上傳/下載的東西,也包括你的登入密碼。互聯網之間的通訊就正如在大街上講話,只要你講出來,別人想聽就可以聽到,這樣並不安全。

所以如果我們不希望別人聽得到我們之間的對話,就需要說暗號,在互聯網通訊的暗號方式就是使用 SSL 加密。這樣的技術在大多數網頁都會有,包括銀行網頁、網購網頁等等,其實凡使用到帳戶密碼的網頁,都應該用上 SSL。

雖然我們不會對 nextcloud 輸入銀行帳號/信用卡資料等等,但上傳的都是個人資料(可以是你手機拍的照片等等) 我們不希望別人在你傳輸的過程中可以隨便攔截得到,所以個人cloud 也都應該進行加密。當然,內網是沒有這樣的問題的,但 nextcloud 的最終目的就是可以從外網使用。



正文:
SSL 設置說明:
在這篇我們會使用 Apache  自帶的 Self-Signed Certificate 來進行 SSL加密,好處在於無需花錢向第三方購買認證服務,而且也無需域名就可以登記(正規來說,域名也是要購買的)。

當然,我們也可以使用有限時/有限制的免費域名,或之類之類的,但本篇講求方便簡單,我們會直接用 IP 進行 Self-Signed Certificate。

Apache 說明:
Apache 是 Web伺服器軟體之一,在傳統 Nextcloud 架設中,我們要先架設 Apache 及 MySQL database ,再在這樣的基礎上架設 Nextcloud。而使用 Docker 架設 Nextcloud 已經包含了這個部分,所以我們當時沒有接觸到。但由於  Self-Signed Certificate 是 Apache 的功能,所以我們這次要回到 Nextcloud container 當中設置 Apache。

Apache 設置分成2個部分,第一部分是建立  Self-Signed Certificate 以啟用 SSL 加密 ,第二部分是設置 Nextcloud 使用這個 SSL。


打開 nextcloud 網頁,現在是以 http 連線,並沒有加密。接下來我們要去container 進行設定。



再次回到 Portainer 網頁,再次點選 local > conrainers 。
1. 記下 nextcloud container 的 IP 
2. 再次點選 >_ 連線到 nextcloud container 的文字操作介面



現在輸入以下指令,啟用Apache 的 SSL 模式 。輸入之後會跑出一小段文字。

a2enmod ssl



接下來輸入以下指令,之後為指定 IP 登記 SSL。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

解釋:
- openssl : 使用 OpenSSL 的指令
- req : 指示使用 X.509 認證模式
- x509 : 特別指明使用 x509
- nodes : 指示 OpenSSL 容連 Apache 讀取加密資訊
- days 365 : 設定指示的期限 365天
- newkey rsa:2048 : 加密金匙設定為 2048 bits 長度
- keyout : 設定金匙放置的位置
- out : 設定放置憑證的位置




接下來我們要手動登記加密的相關資料,大部分資料都只是為了記錄,不是很重要,也不用填寫得詳情,唯獨 Common Name 必須正確。


Country Name (2 letter code) [XX]: 國家
State or Province Name (full name) []:省份
Locality Name (eg, city) [Default City]:城市
Organization Name (eg, company) [Default Company Ltd]:組織名稱
Organizational Unit Name (eg, section) []:組織單位
Common Name (eg, your name or your server's hostname) []:重要! 重要! 輸入 nextcloud container 的IP
Email Address []:聯絡 e-mail 

填寫完之後,又會回到 /var/www/html/, 這樣代表登記的部分結束了。




接下來輸入以下指令,修改Apache 的網頁設置文檔,設定 nextcloud 使用 SSL 加密。輸入之後會跑出上圖這樣的畫面。

nano /etc/apache2/sites-available/000-default.conf

指令的意義是 : nano 是指使用文字編輯工具,到  /etc/apache2/sites-available/ 的位置下,開啟 000-default.conf 這個檔案

文字介面不能使用滑鼠,你可以使用上下左右鍵調整輸入位置。現在把所有文字都刪掉,換成筆者改好的設置(直接把以下文字複製貼上,但要修改紅字的地方):

<VirtualHost *:443>

        ServerAdmin webmaster@localhost
        ServerName {ContainerIP}
        DocumentRoot /var/www/html


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

</VirtualHost>

<VirtualHost *:80>
        ServerName {ContainerIP}
        Redirect / https://{HostIP}:4433/
</VirtualHost>


你需要把紅字改成
{ContainerIP} =  nextcloud container 的 IP
{HostIP} = home nas 正在使用的IP ,即在 Part1 你為OMV 設定的固定IP。



修改之後應該會長這樣。接下來按 CTRL + X 離開,之後下方會跳出指示,問你是否儲存修改,按 Y ,再按 Enter。

現在如果你再次輸入 nano /etc/apache2/sites-available/000-default.conf  就會看到已經修改過的檔案,同樣按 CTRL + X 離開。(如果沒有修改文檔,就不會要求你按 Y )

在上以文檔設置當中,我們設定了 nextcloud 使用 SSL ,並且把原先的 http 重新導向加密後的 https 網址。https 比 http 多一個 s 代表 secure (安全)。 

而使用 https 需要使用 port 4433 來進入(port 的用法就是在IP後加上 :4433而已),接下來,我們要設置nextcloud 信任這個新的接入地址,因為安裝nextcloud 的時候,只有預設的 http(8080) 是容許。



現在我們要在 nextcloud 上登記新的 HostIP:4433 接入地址。


輸入以下指令,安裝 sudo 工具,作用是為了使用 nextcloud 自帶的 occ 工具。

apt install sudo



再輸入以下指令,修改 nextcloud trusted domain(信任網域)。

sudo -u www-data php /var/www/html/occ config:system:set trusted_domains 2 --value={HostIP}:4433

同樣修改紅字部分:
{HostIP} = home nas 正在使用的IP ,即在 Part1 你為OMV 設定的固定IP。

我們登記的位置是 trust_domains 2 ,1號的位置預設的 http 接入。 


成功的情況下,會出現圖中下方的綠色字:
System config value trusted_domains => 2 set to string {HostIP}:4433


圖中有句黃色 PHP  memory limit 的警告可以無視。

這樣就完成了,無需再在文字介面操作。



現在我們直接去重啟 nextcloud container
1. 無需再理會文字介面,直接點選左邊的 "Containers"
2. 對 nextcloud 的 container 打勾
3. 按 "restart"



現在重新載入 nextcloud 頁面,或輸入 https://{HostIP}:4433

紅字部分:
{HostIP} = home nas 正在使用的IP ,即在 Part1 你為OMV 設定的固定IP。

就會出現:你的連線不是私人連線

1 的位置會看到網址前有 https,代表已經啟用SSL加密。

出現不安全是因為瀏覽器無法在第三方找到這個SSL的登記憑證,是正常情況,因為我們用的是Self-Signed Certificate (自我登記憑證), 可以無視。

按2 = "進階"




點選 "繼續前住"

如果你使用的是 mac 系統,請在這個頁面時,默默輸入 thisisunsafe 就可以進入了。
注: thisisunsafe 即 this is unsafe 拿掉了空白鍵,輸入時不會有任何顯示或表示。



現在你可以再次進入 nextcloud 網頁,而且網址前有 https ,即該網頁已經有 SSL 加密。完成~



後話:
有了 SSL 之後,我們就可以更安心在外網使用自架 nextcloud 了。

Self-Signed Certificate 也有缺點,由於我們沒有購買/使用第三方的認證服務,所以瀏覽器會跳出警告,說明無法認證這個加密的可信性,不過由於我們知道那是我們的 home nas ,可以選擇無視警告進行連線;在我們個人使用或小群體使用,這樣是沒問題的,但不適合開放給第三方/客戶使用,因為通常跳出警告時,很易令別人有不良印象。


留言

這個網誌中的熱門文章

Fan Control 超好用的風扇控制軟件

前言:  今天來跟大家分享一下超好用的風扇控制軟件 Fan Control,功能精簡好用,介面直觀好操作。 Fan Control 是由 Github 一個小團隊開發的免費軟件, Github 有很好的官方使用說明和資料: https://github.com/Rem0o/FanControl.Releases 不過筆者還是打算不厭其煩在這邊用中文跟大家分享一下。 Fan Control 可以讓你高自由度設定風扇,例如對指定系統溫度作反應等等。比如筆者的顯卡很熱,但機箱風扇都針對CPU熱的時候才有反應,導致顯卡的熱力累積在機箱內部,結果顯卡又只能拿已經很熱的機箱空氣來用。那裡如果設置成顯卡熱時,機箱風扇一起反應就好了,用 Fan Control 達成就很 EASY!

Nikon FE 底片機 開箱 評測 用後感

  前言: 近年,底片機又有點微熱,也有人來問筆者怎麼選。當中 FM2 的價格被拉得滿高的,其中一個原因是知名度比較高,但其實Nikon 還有很多很棒的傳統底片機可以考濾。當中 FE 是筆者最推薦的,cp值高,性能又整全,這篇就來好好介紹一下,讓大家認識 Nikon FE !

Olympus Trip 35 底片機 開箱 評測 用後感

  前言: 這陣子筆者忙了很多事情,結果文章又停了一下。今天來跟大家介紹一下 OLYMPUS 的一台隨拍機。事關很多想體驗底片的朋友,對設定參數沒什麼興趣,反正就是想要一台底片機可以輕鬆拍,那麼這台就是了, Olympus Trip 35  可是一台由推出到現在,近半世紀都大熱的一台隨拍機。下文這台,也是筆者親自全機整修過的,就來跟大家一起說明一下。