由於我未來的日子極有可能會和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
參考
Smart Meter Dashboard: Installing InfluxDB
Troubleshooting: 根據驗證程序,遠端憑證是無效的。