為Django網站建立免費的SSL連線

現在網站如果還沒有支持SSL(也就是https)連線的話,都會在瀏覽器上被打上一個不安全的警示,有時候會造成瀏覽者的擔心,因此,如果你的網站是自行建立在某一個伺服器上的話,當然最好的方式就是要讓該伺服器的SSL憑證生效,讓你的網址可以利用https的方式來瀏覽。網站有一個簡單的方法,可以免費申請憑證並協助你把https連線的設定搞定,以下就是操作過程的摘要。

本文假設你使用的是Ubuntu作業系統,而且使用Apache2伺服器,並且是利用Django來建立的網站。假設原本的網站就已經可以運作,而且有一個屬於自己的網域名稱,那麼請參考以下的設定和操作流程,就可以輕易地完成https的設定。

首先,一定要記得,在/etc/apache2/site-enabled/000-default.conf的設定中,屬於你的網站的<VirtualHost>設定,一定要把WSGIDaemonProcess放在<VirtualHost>的設定之外,但是WSGIProcessGroup則是放在裡面,如下所示:

接著請利用以下的指令安裝snap:

sudo apt install snapd

然後以下的指令可以安裝自動化憑證管理工具certbot

snap install --classic certbot

再來建立一個連結:

ln -s /snap/bin/certbot /usr/bin/certbot

利用以下的指令執行certbot的自動化設定:

certbot --apache

如果正確執行,certbot會先詢問你的電子郵件帳號,然後找出所有伺服器上目前正在運作的網站名稱的網域,讓我們以數字的方式選取想要設定https的VirtualHost,選取完畢之後,即會進行設定。如果設定的過程出現了任何錯誤,請在修正錯誤之後再重新執行以下的指令(假設我們要設定的網站是ghp.nkust.org):

certbot install --cert-name ghp.nkust.org

當然如果一次就設定好了,上面這個指令就不需要執行。

如果之後在同一個伺服器上要新增另外一個網域的話,請使用以下的指令:

certbot --apache -d your_domain

然後,就沒有然後了,接下來你只要輸入原本的網址,就可以看到,伺服器已經幫你把網址轉換成https的連線了,回到伺服器,所有的SSL設定都會被放在000-default-le-ssl.conf中,有興趣的同學可以把它打開研究一下喔。

發佈留言

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