[Influxdb]Enable https for influxdb

由於我未來的日子極有可能會和influxdb相處一段時間,

所以我必須用最快速度來上手,這篇先記錄如何啟用https

基於安全性大部分都會使用https,因為網路世界你真的無法想像有多少人嘗試一些惡意行為,

加上influxdb提供HTTP API可操作資料庫涵蓋約99%,

所以勢必要注意安全,不然很有可能被drop資料庫後回家吃自己了,

anyway~~下面我就手把手紀錄如何啟用https。

 

我這邊會使用Self-signed certificates的方式

下載openssl(我選擇Win64 OpenSSL v1.1.0e Light),並透過openssl產生私鑰和自我憑證。

openssl genrsa -out D:\influxdb1.2.2\influxdbkey.pem 2048 #Generate a private key

openssl req -new -key D:\influxdb1.2.2\influxdbkey.pem -out D:\influxdb1.2.2\influxdbcert.csr # create a certificate signing request

(請依環境輸入)

openssl x509 -req -days 3650 -in D:\influxdb1.2.2\influxdbcert.csr -signkey D:\influxdb1.2.2\influxdbkey.pem -out D:\influxdb1.2.2\influxdbcert.pem # Sign the certificate with the key

確認 influxdbcert.pem 和influxdbkey.pem檔案是否都存在,並合併為單一檔案

修改influxdb.conf

[admin]
  enabled = true
  bind-address = "192.168.1.103:XXX"
  https-enabled = true
  https-certificate = "D:\\influxdb1.2.2\\influxDB.pem"

[http]
  enabled = true
  bind-address = "192.168.1.103:8096"
  auth-enabled = true
  log-enabled = true
  write-tracing = false
  pprof-enabled = true
  https-enabled = true
  https-certificate = "D:\\influxdb1.2.2\\influxDB.pem"
  https-private-key = ""  #請勿輸入

 

開啟admin UI確認https是否正常

使用postman測試https api

設定使用基本授權(避免收到401錯誤)

使用line protocol打一筆資料到influxdb

確認沒有收到401後,透過influxdb admin UI確認資料

write data is ok

 

修改grafana的datasource使用https

.net application略過憑證檢查(寫小工具提高工作效率當然不可少)

加入以下code,讓httpclient可以正常執行https

private bool ValidateServerCertificate(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            return true;
        }

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
                influxDbClient = new XXXX

 

參考

HTTPS Setup

Smart Meter Dashboard: Installing InfluxDB

Troubleshooting: 根據驗證程序,遠端憑證是無效的。