匯入SSL憑證到Unifi Controller

    內容表格
    沒有標頭

    版本為 07:53, 27 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    如果覺得每次進入Web介面, 看到那個Not Secure訊息都有一點奇檬子不爽的感覺:

    使用者有強迫症又覺得 "老子就是要看到那個greenbar才會爽" 的症狀下:

    那麼可以自行匯入SSL憑證, 有幾種方案:
    1. 花錢買頗貴的EV SSL憑證.
    2. 使用let's encrypt免費憑證.
    3. 家裡自建CA, 作為內網使用. 不需要對外, 使用自建CA申請憑證.

    本篇將使用方案3作為匯入SSL憑證到Unifi Controller的操作. 首先我有了一個自建的CA:

    所有的內部User都綁定在這個CA的domain下. 為了申請憑證, 這裡使用的Windows系統的做法, 我必須要產生CSR請求檔. 在Windows下可以使用幾種情況:
    1. 使用certmgr申請
    2. 使用其他工具申請, 例如DigiCertUtil, OpenSSL
    3. 使用IIS的憑證工具申請
    需要注意的是IIS申請的憑證不會帶SAN(Subject Alternative Name)資訊. 在有些瀏覽器會強制檢查這個欄位, 例如google chrome.
    沒有帶入這個欄位依然會提示Not Secure.
    這裡使用的DigiCertUtil產出CSR請求檔:

    他可以額外填入SAN欄位, 這裡填入了兩種資訊:
    storaid.local
    unifi.storaid.local

    在產出CSR申請檔後, 便要透過CA完成這個CSR請求生成SSL憑證. 這邊直接使用IIS的憑證工具完成CSR請求:

    完成後, IIS的憑證工具便會多出一個unifi.storaid.local的SSL憑證. 並且自建的CA也會看到請求完成後的SSL憑證資訊.

    確認SSL憑證相關欄位資訊, 並且檢查有沒有帶入SAN欄位:

    接下來再利用IIS的憑證工具輸出成pfx檔並且帶密碼. pfx檔會附加private key訊息.

    再來把這個pfx上傳到Unifi Controller裡, 由於我是OpenWRT掛載debian環境. 因此這邊使用了OpenWRT的atftp上傳pfx憑證檔. 為了方便, 我將它上傳到unifi存放憑證的路徑下:

    上傳完成後, 便要進行對Unifi Controller的SSL憑證處理. 載入debian環境並且切換路徑到unifi存放憑證的位置下:

    這裡看到我在該路徑下已經上傳了pfx憑證檔. 注意到一個名為keystore的檔案, 這是用來存放Unifi Controller的憑證相關資訊.

     

    最初的開始, 鍵入以下的命令列出目前有的憑證資訊:
    keytool -list -v -keystore keystore
    這時它會要求輸入keystore的密碼. 在這邊必須輸入 aircontrolenterprise
    完成後會看到列出Unifi Controller的built-in SSL憑證:

     

    請注意它的別名(alias)是unifi. 再來要將pfx憑證檔匯入到keystore, 使用以下命令:
    keytool -importkeystore -destkeystore keystore -srckeystore unifi.storaid.local.pfx -srcstoretype PKCS12 -srcstorepass unifi
    -srcstorepass參數後面接的是pfx檔設定的密碼. 這邊設定為unifi.

    在匯入憑證的過程中, 他會要求輸入keystore的密碼(aircontrolenterprise).
    完成操作後, 在使用keytool -list -v -keystore keystore列出相關憑證資訊來查看是否存在pfx憑證檔資訊:

    可以發現確實出現所期望的憑證資訊. 只是有一個問題就是別名(alias)的長相很難看, 對人來說是一串無意義的英文數字雜湊代碼.
    因此需要進行別名(alias)的修改, 使用以下命令:
    keytool -changealias -keystore keystore -alias [alias of privateKey goes here] -destalias [new_alias_name]

    可以看到我將別名(alias)修改為unifi_storaid_local, 不過在這個過程中它會要求輸入兩次密碼.
    第一次為keystore的密碼(aircontrolenterprise).
    第二次為pfx憑證檔設定的密碼, 當初設定為unifi.

    完成別名(alias)修改的操作後, 必須重新設定該匯入的pfx憑證的私鑰密碼. 使用如下命令: keytool -keypasswd -alias [alias_name] -keystore keystore

    在這個過程中, 它會要求輸入幾次密碼.
    第一次為keystore密碼(aircontrolenterprise)
    第二次為pfx原本設定的密碼(unifi)
    第三次設定新密碼, 必須設定為 aircontrolenterprise
    第四次輸入確認密碼, aircontrolenterprise
    在這個步驟完成後, 在原本可以使用 shutdown -r now 來重啟始設定生效. 不過我這邊是OpenWRT去掛載, 省得麻煩直接對OpenWRT做reboot. reboot完成後, 直接使用瀏覽器測試匯入SSL憑證所申請的domain name. 在這個案例使用unifi.storaid.local.

    有Greenbar, 有SAN欄位, 瀏覽器顯示Secure. 確認SSL憑證匯入已經成功了.

    Powered by MindTouch Core