在Azure VM 的Apache2配置SSL

Sheng-Shan Chen
Mar 30, 2021

--

看了滿滿文章還是處處碰壁,每個SSL憑證申請花了69.99美,又建了DNS 區域發現怎麼驗證都不過,才發現真正申請的應該是APP Service網域+APP Service 憑證。

投資超過200美金才有這篇文章的誕生,喜歡就幫忙拍手(免費)吧!

首先建立一個App Service 網域,這邊會花費11.99美金。

建立完後,它會自動幫你架設DNS 區域。

新增一個記錄集。

名稱: @

類型:A

IP:填上VM的公有IP。

搜尋App Service 憑證,建立一個憑證,這邊一年需花費69.99美元(向Godaddy註冊)。

創建需花費3~5分鐘,好了後需要驗證網域擁有者,上面有很多方式可以驗證,選擇一個方便的就可以。

我選擇在DNS區域加入 @ txt的權重驗證。

憑證要能用的條件之一要建立Key Vault儲存。

完成後會有三個勾勾,就能去左邊的匯出憑證,從Key Vault 下載憑證。

點擊開啟Key Vault 秘密後,點擊一個版本,最下面就有下載憑證,副檔名是pfx(可直接裝上IIS),裝在Apache2還要用openssl拆開才能匯入...。

把pfx拆成cer與key檔

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key

使用scp指令上傳到VM,上傳到tmp是權限問題。

scp -i {xxx}.pem cgmh.key user@ip:/tmp
scp -i {xxx}.pem cgmh.cer user@ip:/tmp

上傳完後ssh到VM,將檔案搬至 /etc/ssl/

修改ssl設定

sudo nano /etc/apache2/sites-available/default-ssl.conf .

替換其中

SSLCertificateFile      /etc/ssl/cgmh.crt
SSLCertificateKeyFile /etc/ssl/cgmh.key

好了後重啟apache2

sudo systemctl restart apache2

記得防火牆要開。

Result:

--

--