Step1 域名購買
相關域名供應商有許多,有興趣的朋友可以再自行 Google 一下,這邊我們是透過 GoDaddy 購買域名,名稱為 www.wowfuncode.com,買了域名後很快能做相關設定,主要設定是要讓域名與 IP 做個對應而已。
Step2 SSL 憑證申請
申請憑證的簽發單位有許多,費用也不一,這邊我們是使用免費的 Let’s Encrypt - Free SSL/TLS Certificates 進行申請。
首先連進去 GCP VM,透過 GCP 提供的 SSH 方法快速連入
安裝 Lego Client
進入 tmp 資料夾並且下載 lego 安裝檔
終端機輸入
cd /tmp
curl -Ls <https://api.github.com/repos/xenolf/lego/releases/latest> | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
接著進行安裝,lego_vX.Y.Z 代表你所裝的版本
tar xf lego_vX.Y.Z_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego
停止 nginx 才向 Let’s Encrypt 申請憑證,並重啟服務
sudo /opt/bitnami/letsencrypt/lego —tls —email="wowfuncode@gmail.com" —domains="www.wowfuncode.com" —path="/opt/bitnami/letsencrypt" run
sudo /opt/bitnami/ctlscript.sh start nginx
sudo /opt/bitnami/ctlscript.sh restart nginx
生成的憑證存放位置
將預設的憑證位置指到新的憑證
Bitnami 服務會有個預設的 SSL 憑證路徑:
/opt/bitnami/nginx/conf/server.crt
/opt/bitnami/nginx/conf/server.key
目前是假憑證,最方便的做法是將此兩個檔案直接指向正確憑證
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/bitnami/certs/server*
sudo chmod 600 /opt/bitnami/nginx/conf/bitnami/certs/server*
大致上的流程是:
其他服務例如 apache 可以參考官網
打開 SSL 設定
指令開啟 nginx-vhosts.conf 檔案
vim /opt/bitnami/nginx/conf/bitnami/bitnami.conf
ssl 開關(on)打開,並且設定 crt、key 路徑
ssl on;
ssl_certificate "/opt/bitnami/nginx/conf/server.crt";
ssl_certificate_key "/opt/bitnami/nginx/conf/server.key";
強制轉向到 https
指令開啟 nginx-vhosts.conf 檔案
vim /opt/bitnami/apps/wordpress/conf/nginx-vhosts.conf
Server 內加入語法,使其網頁能
server {
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteCond %{REQUEST_URI} !^/\\.well-known
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
}
以上就是整個 SSL 的實作,那麼下次見囉~
《精采文章同步發表》
1.我瘋FB粉絲專頁:https://www.facebook.com/我瘋程式工作室wowfuncode-102683961458110/
2.我瘋官網:https://www.wowfuncode.com/category/blog/