2017年2月13日 星期一

LINE bot webhook 回應SSL certificate is invalid

這次遇到一件奇怪的事情
之前透過ssl for free申請的ssl cert設定好之後
讓瀏覽器開啟https有成功的認證網站具有合法的ssl cert
但是把網址填入LINE bot的webhook url,LINE bot的測試結果會回傳SSL certificate is invalid

筆者先把先前透過ssl for free申請的憑證從DSM中移除之後透過DSM6內建的功能去Let's Encrypt申請一張新的憑證後即可讓LINE bot驗證成功
目前不清楚發生原因,可能的原因也許是之前申請時是使用Web Station+虛擬主機的方式,而實際使用時是用反向代理+web service in docker的方式造成驗證不符合?



2017/03/02 update:
透過DSM新申請的憑證當下是可以驗證成功,但是過了一段時間之後一樣會發生同樣的問題。
目前推測是因為使用ddns的domain,懷疑也許dns cache使得LINE bot解析到錯誤的ip導致驗證失敗。
筆者現在改成使用固定ip就可以成功驗證,目前還在持續觀察這個問題。

2017年2月5日 星期日

在開發環境使用ngrok測試LINE bot(webhook)

在開發LINE bot途中遇到一個問題:如何在開發環境(本機)上取得、測試LINE message?

LINE bot的運作流程是這樣的:
1. 使用者傳送訊息到LINE bot帳號
2. LINE bot收到訊息後會將訊息post給Webhook URL
3. Webhook URL就是我們所寫的web service,負責實際處理收到的訊息

問題發生在2到3之間:
1. 首先是Webhook URL必須是公開的網址才能讓LINE bot呼叫,而開發環境(本機)上一般都是私有網址如http://localhost/api/
2. 其次是LINE bot要求Webhook URL必須有SSL,也就是必須是https

正規的做法就跟設定營運環境(production)一樣,買個public domain、弄個固定ip、申請ssl cert、安裝設定ssl cert & 網路環境...balabala

可以不用這麼麻煩
  

2017年1月10日 星期二

測試到NAS間的傳輸速度

今天傳檔案到NAS上時發現速度非常悲劇,只有3.5MB/s


















排查了好一陣子,最後找出是因為網路拓樸的關係才導致速度大減
重新調整一下網路後就達到11MB/s



























儘管現在已經把連線弄好了,不過一個同樣浮現在筆者腦中:

我們怎麼測試跟NAS之間的傳輸速度?


2017年1月4日 星期三

申請免費SSL認證

這台NAS上的網站是為了給LINE bot使用的network service
但是LINE bot要求的webhook網址必須是https
因此我們必須去申請一個SSL認證

2016年12月31日 星期六

在NAS上建立web station



NAS並不僅僅只是網路儲存設備,現在的NAS都是一台小型的Server
這台NAS我需要架設web service供LINE bot使用

NAS系統資訊:
廠商:Synology群暉科技
型號:DS1515+
DSM版本:
DSM 6.0.2-8451 Update 7


首先登入DSM後去套件中心安裝Web Station



安裝完畢後開啟Web Station
事實上NAS原本就有一個web service了,就是DSM
我們現在需要新增一個虛擬主機,讓特定的網址能由不同的website來服務.
將網址以及對應的port打上去,並且指定主要目錄是web/sslServer

設定完成後就架好了一個網站了
讓我們來簡單的驗證一下網站有沒有起來
我們在剛才虛擬主機指定的主目錄web/sslServer下面新增一個檔案叫做index.html
內容如下:
<!DOCTYPE html>
<html
<body>
    <H2> Server working fine. </H2>
</body>
</html>

用瀏覽器開啟http://infobot.ddns.net/index.html即可看到"Server working fine"的字樣


2016年12月26日 星期一

關於本網誌

入手了一台NAS DS1515+
設定與安裝中發生了各種問題
感嘆真的是學習永無止盡

附註:
正確來說是學無止「境」才對,
標題只是想表達學習是無止無盡的無奈