為什么有這個需求
TDengine IDMP (以下簡稱“IDMP”)的用戶在訪問 IDMP 的 web 頁面方面大致分為 2 種:
- IDMP 只在公司內(nèi)部使用,不會公布到互聯(lián)網(wǎng)上,大多數(shù)用戶應該是使用這種方法
- IDMP 會發(fā)布到互聯(lián)網(wǎng)上,用戶自己申請證書
針對公司內(nèi)部系統(tǒng)(不對外)的情況,申請 SSL 證書的核心思路與對外服務網(wǎng)站完全不同。公網(wǎng) SSL 證書要求域名必須能從互聯(lián)網(wǎng)解析以完成所有權(quán)驗證,而內(nèi)部系統(tǒng)使用的通常是無法從公網(wǎng)訪問的私有域名或 IP 地址,無法通過常規(guī)方式申請公網(wǎng)信任的證書。
我們不推薦給用戶主動去申請這個 IDMP 的證書,正常情況下,用戶自己的系統(tǒng)需要他們自己申請維護證書。
如果用戶想要使用 Excel 的 addin 功能,那必須配置證書才可以。我們的 IDMP 內(nèi)置了一個證書,但是只有 3 個月有效期,這對于使用方法 1 的用戶來說比較麻煩。有的用戶即使選擇方法 1,也可能會考慮自己去申請證書。但有的用戶就不希望麻煩,希望我們直接給他們設(shè)置好。

正好有個用戶遇到了這個情況,而且他們不會公布到互聯(lián)網(wǎng)上,他不希望自己去折騰證書,希望我們來處理完成。我在我們自己內(nèi)部環(huán)境測試驗證了下,可以考慮使用自簽證書,幫用戶解決這個問題。
證書申請操作方法

我們默認安裝完成 IDMP 后,在 config 目錄下會有 2 個文件:
privkey.pem(私鑰):這是服務器的“身份證密鑰”,必須保密,只能放在服務器上。它用于解密信息并向客戶端證明自己的身份 。certbundle.pem(證書包):這是服務器的“數(shù)字身份證”,它包含了服務器的公鑰、身份信息等。客戶端會用這個文件來驗證它正在通信的服務器是否是你想要訪問的那個 。
如果不想只有 3 個月使用期限,可以自己配置生成證書。
步驟 1:在一臺管理機器上生成 CA 根證書
# 生成CA私鑰
openssl genrsa -out ca.key 2048
# 生成CA根證書(假如設(shè)置有效期10年)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=TDengine/CN=TDengine Internal CA"
步驟 2:在 idmp.tdengine.net 服務器上生成服務器證書
登錄到運行 idmp.tdengine.net 的服務器,執(zhí)行以下命令:
# 1. 生成服務器私鑰
openssl genrsa -out privkey.pem 2048
# 2. 生成證書簽名請求(CSR)
openssl req -new -key privkey.pem -out idmp.csr \
-subj "/C=CN/ST=Beijing/L=Beijing/O=TDengine/CN=idmp.tdengine.net"
# 3. 創(chuàng)建擴展配置文件
cat > idmp.ext <<EOF
subjectAltName = DNS:idmp.tdengine.net
EOF
# 4. 使用CA證書簽署,生成服務器證書
openssl x509 -req -in idmp.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-out idmp.crt -days 3650 -sha256 -extfile idmp.ext
# 5. 創(chuàng)建certbundle.pem
cat idmp.crt ca.crt > certbundle.pem
# 6. 查看生成的證書內(nèi)容(確認域名是否正確)
openssl x509 -in certbundle.pem -text -noout | grep -A1 "Subject Alternative Name"
執(zhí)行完后,就得到了:privkey.pem(私鑰)、certbundle.pem(證書包)
步驟 3:客戶端安裝 CA 根證書
將 ca.crt 分發(fā)給所有需要訪問 https://idmp.tdengine.net 的電腦,雙擊安裝到“受信任的根證書頒發(fā)機構(gòu)”。
配置 IDMP 證書
拿到了privkey.pem、certbundle.pem文件后,還需要將 IDMP 里默認自帶的證書進行替換。
首先需要確保 IDMP 的 6034 端口已經(jīng)處于監(jiān)聽狀態(tài)。6034 端口是 IDMP HTTPS 服務端口。

1. 可以將自帶的證書進行備份一下,例如
mkdir bak
mv privkey.pem certbundle.pem bak
2. 拷貝新證書到 /usr/local/taos/idmp/config 目錄下
如果是安裝包安裝,可以直接拷貝替換;
如果是 docker 方式安裝,可以使用 docker cp 拷貝進去,或者映射出 config 目錄,拷貝替換
3. 拷貝完成后,需要重啟 IDMP 的服務進行生效
4. 客戶端機器安裝根證書,將之前生成的 ca.crt 文件拷貝到客戶端機器,進行安裝,注意:需要將正式安裝到受信任的根證書頒發(fā)機構(gòu),否則后續(xù) Excel 認證失敗。
5. 域名解析配置
如使用內(nèi)置測試證書,需在客戶端的 hosts 文件中添加域名解析:
192.168.1.100 idmp.tdengine.net # 請?zhí)鎿Q為實際的服務器 IP
hosts 文件位置:
- Linux/macOS:
/etc/hosts - Windows:
C:\Windows\System32\drivers\etc\hosts
6. 瀏覽器測試訪問 https://idmp.tdengine.net:6034/ 并查看證書信息,確保生效。如果這里看到的仍是之前證書,或者到期的證書,請檢查之前步驟,可能是沒有替換完成或證書有問題。

7. 安裝 Excel addin 插件
以 windows 為列,管理員身份打開 PowerShell,執(zhí)行以下命令:
powershell -ExecutionPolicy ByPass -c "& ([scriptblock]::Create((irm https://taosinstallers.blob.core.windows.net/tdengine-excel-add-in/install.ps1))) -Action Install -ForceCloseExcel -Url 'https://idmp.tdengine.net:6034' -EnableLogging"
Excel 里面選擇獲取加載項,然后點擊共享文件夾,點擊添加 TDengine EAI。

點擊 TDengine EAI 下的設(shè)置按鈕,登錄 IDMP 賬戶即可使用:

8. 如果中間遇到問題,可以嘗試卸載插件、再安裝,卸載命令
powershell -ExecutionPolicy ByPass -c "& ([scriptblock]::Create((irm https://taosinstallers.blob.core.windows.net/tdengine-excel-add-in/install.ps1))) -Action Uninstall -ForceCloseExcel"
至此,Excel addin 的自簽證書 10 年有效期就配置完成了。
注意事項
- 如果之前安裝的 IDMP 的版本比較低,需要升級到最新版本,否則不支持此功能
- 有的舊版本 IDMP 里的 https 端口設(shè)置的為 6037 端口,比如 1.0.10.0 版本,還是建議先升級版本(新版本的 https 端口為 6034),如果不想升級,那可以調(diào)整 yml 文件映射的端口
- 安裝證書時候需要選擇安裝到 受信任的根證書頒發(fā)機構(gòu),否則無法認證通過
參考:https://idmpdocs.taosdata.com/operation/installation/excel-addin-guide/



互聯(lián)網(wǎng).png)



-1.png)











伙伴.png)
伙伴.png)



