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

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

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

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

7. 安裝 Excel addin 插件
以 windows 為列,管理員身份打開(kāi) 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 里面選擇獲取加載項(xiàng),然后點(diǎn)擊共享文件夾,點(diǎn)擊添加 TDengine EAI。

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

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



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



-1.png)




.png)


證.png)


伙伴.png)
伙伴.png)
伙伴.png)



