2018-03-20

如何幫 ProfitTrailer 自動交易機器人安裝 SSL 憑證並啟用加密通訊

ProfitTrailer 是一款用於進行加密貨幣買賣的自動交易機器人,也就是俗稱的 BOT

由於採用了 node.js 的架構,因此 ProfitTrailer 可以在 Windows、MacOS 和 Linux 等系統上運作,應該說只要是支援 node.js 套件的系統都可以運行,而且它可以透過網路瀏覽器來作 GUI 層面的操作,降低在終端機上誤操作的機率

由於你要運作 ProfitTrailer 就需要讓電腦不關機,除了把它裝在迷你電腦或是樹莓派等開發板上,把它安裝在網路上的虛擬主機也是可以的,而且相較於運作在開發板上,效能瓶頸比較沒那麼嚴重,我也是選擇把 ProfitTrailer 安裝在 Google Cloud Platform 上的執行單元

而如何在 Google Cloud Platform 上安裝 ProfitTrailer?可以參考這篇文章,我就不贅述了



運行在 Google Cloud Platform 上的 ProfitTrailer,可以透過網頁操作

但如果運行在 Google Cloud Platform 之類的主機上,然後透過網路去存取,則會碰到資安上的問題,雖然透過 ProfitTrailer 或是交易所的 API 是無法進行轉帳與領現的,但如果你的 ProfitTrailer 有開啟 HotConfig 可以透過網頁修改策略檔案,被入侵的話也是會有所損失,比如惡意調整你的策略讓你虧損,或是直接幫你按下停機鈕把 ProfitTrailer 關閉

而 ProfitTrailer 有提供 SSL 加密通訊的功能,可以將網路介面的部分加密,這篇文章就是教你如何去幫 ProfitTrailer 綁定 HTTPS 通訊

首先,請買一個網域,然後把 DNS 指向 CloudFlare,這很重要

透過 CloudFlare 的 CDN 與防護,可以把運作 ProfitTrailer 主機的真實 IP 位址隱藏在 CDN 後方,當然用誤試法去掃描全網路的 IP 總有一天會碰到,但如果單純用 WHOIS Lookup 跟查閱網域資料,是可以隱藏起來,避免大部分的好事之徒

當然,也是方便我們去簽署 SSL 憑證



在 CloudFlare 的後台把網域填入之後,要到你購買網域的地方把 DNS 指定為 CloudFlare 的 DNS

要幫 ProfitTrailer 加上 SSL 加密通訊有點複雜,如果照著 ProfitTrailer Wiki - Setup SSL 去弄有很高的機率會搞砸,畢竟不是人人都會在終端機上面安裝 Let's Encrypt 的自動 SSL 憑證簽署模組,此外還有一個問題點

ProfitTrailer 使用的網路介面是基於 Apache Tomcat,簡單說就是建立在極度簡化的前提下,給 Java 程式使用的 HTTP daemon,這也是為何 ProfitTrailer 只支援 PKCS12 這種整合性的金鑰檔,所以在安裝 Let's Encrypt 的模組後,當你好不容易搞定而且生成的 PEM 格式的金鑰檔,還要再把 PEM 格式的金鑰轉換成 PKCS12 加密的 P12 金鑰檔,然後去 ProfitTrailer 的設定檔調整參數才可以

所以我們用簡單點又粗暴的方法來完成簽署 SSL 憑證,透過 SSL For Free 這個網站,就可以直接申請 Let's Encryp 的 SSL 憑證,之後生成加密 P12 金鑰檔步驟就可以更簡單的完成



前往 SSL For Free 去簽署 SSL 憑證,把你要給 ProfitTrailer 使用的網域填入

由於 ProfitTrailer 沒辦法去修改網頁端輸出,因此透過最右邊的 Manual Verification (DNS) 去完成

由於 DNS 支援 TXT Records 這種操作,因此可以用這種方法認證網域的所有權

按下 Manual Verify Domaon 後,你會看到這個畫面,注意那兩個驗證位址

這時請打開你的 CloudFlare CDN 控制台,前往你的網域,在 DNS 這個項目下,選擇 TXT 這個類型,在 Name 與 Value 那邊依序填入 SSL For Free 要求的網域名稱跟字串,TTL 設定成預設值的自動就好,再按 Add Record

沒意外的話,完成操作後,當你點擊 SSL For Free 產生的網址時,就會看到相應的字串紀錄



先在 Name 填入 _acme-challenge

然後在 TXT content 填入相應的亂數字串

應該要像是這樣

回到 SSL For Free,點擊 Download SSL Certificate,你會看到這個畫面,這是在驗證中

沒意外的話,就會看到這個畫面,屬於那個網域的 Certificate、Private Key 與 CA Bundle 都會出現

由於安全性的關係,上面的圖都把字串的部分遮蔽

看到 Certificate、Private Key 與 CA Bundle 生成後,你可以點選 Download SSL Certificate Files,或是開啟你熟悉的編輯器,然後分別存成三個 PEM 格式的金鑰檔案

然後,請妥善保管你的金鑰檔案,特別是 Private Key,因為有了 Private Key 就可以製作網站 SSL 憑證

接著請開啟 FTP 軟體,把這三個金鑰檔案丟到虛擬主機上



我在使用者的個人目錄裡面創建了一個 ssl 資料夾,專門存放這些檔案

接下來請開啟你的終端機,先切到 root 權限,Google Cloud Platform 的話就是輸入 sudo su,接下來請使用 cd 指令切換到你剛剛上傳金鑰檔案的資料夾,然後輸入這個指令

把 Certificates.crt 換成你儲存 Certificate 的檔案名稱,Private.key 替換成你儲存 Private Key 的檔案名稱,CA.crt 儲存 CA Bundle 的檔案名稱,其餘指令都是照舊

接著會要你輸入一個密碼,如果很懶、而且你的 ProfitTrailer 登入密碼是長度超過二十字元的強密碼,那也是可以用一樣的密碼

沒意外的話,這個指令就會生成一個名稱為 PKCS12.p12 的金鑰檔,記下那個檔案的位置,沒亂跑的話,它會乖乖待在那個你剛剛上傳的資料夾,然後再用 cd 指令切換到你安裝 ProfitTrailer 的資料夾,編輯 application.properties 這個系統參數檔(我是用 Vim 這個編輯器),加入這些參數在 server.port 後面,當然 server.port 也要調整,建議調成 443

/home/user/download_ssl/PKCS12.p12 替換成你存放 crt.p12 的目錄位置(要包含 crt.p12 檔案),p12password 替換成生成 P12 金鑰檔時填寫的密碼

然後存檔離開

沒意外的話,重開 ProfitTrailer 然後等一會,你應該就可以正常訪問 ProfitTrailer 的登入畫面了

在 CloudFlare CDN 控制台,前往你的網域,在 Crypto 這個項目下,把 SSL 的等級調整成 Full 或是 Full (strict),並開啟 Always use HTTPS,則 CloudFlare 會驗證你的 P12 金鑰檔是否正確,如果有異常的話,通常會出現 Error 525 SSL handshake failed 來提醒你 P12 金鑰檔可能過期或是你簽爛了



重開 ProfitTrailer 然後等一會,你應該就可以透過 HTTPS 正常訪問 ProfitTrailer 的登入畫面

最後注意一點,Let's Encrypt 的 SSL 憑證預設期限是九十天,而 SSL For Free 會在 SSL 憑證過期前兩週發信提醒你要更新,就照前面的程序,去 SSL For Free 更新 DNS TXT Records 後拿取更新的 SSL 憑證,然後一樣透過那個 openssl 指令生成新的 P12 金鑰檔去替換掉舊的金鑰檔就好

如果你覺得這篇有所幫助,也可以給我一點贊助

Bitcoin | 1FcBQGbpgHjkh7C3zK8asQyMauK5Lm3Dh2
Ethereum | 0x6071cc4ca777862b934046acae5e840d1944a60d

2018-03-11

中華電信 FTTH 光纖到府申裝

這一陣子家裡的光世代 vDSL 100/40M 常常無預警斷線,發生頻率大概是三週到五週發生一次,但實際時間不一定

斷線時的情況是數據機突發性的亮起異常燈號然後斷線,無線網路分享器跟中華電信 MOD 都一起斷線,然後過十分鐘左右就會自己恢復,打去客服也只是消極回應而已,即使工程師說有重整機房端的線路、然後手動重開數據機,之後還是會再發生


2016_04_01_150056
家裡的光世代數據機是放在電視櫃裡面,所以之後有加上散熱用的風扇

問了一下電信業相關的朋友,表示這種單路雙絞銅纜的光纖轉 vDSL 如果出現我遇到的情況,就是銅纜部份的線路有問題,可能是電信交接箱品質不佳,也可能是某個點接觸不良或出現其他問題,而 ADSL 跟 vDSL 在架構上是從中華電信的局端藉由原有電話線路過來,這就需要從住宅環境的弱電箱開始,一路找到大樓的弱電箱,重新打線盤、改埠號後重新觀察,甚至要一路檢查到局端(通常是你家附近帶有光纖轉換設備的電信箱)去

由於住宅環境的弱電箱是我自行處理的,已經改用 UY 接續子,而線盤的部分也是也重新打過,加上沒遇過播打室內電話會讓網路斷線的分歧器問題,因此就先預設是中華電信到我這一棟的路線上可能有問題吧

由於我這邊的網路有掛伺服器,我實在不想再拿上線穩定度開玩笑,在確認我家這邊可以申請光纖到府(FTTH)之後,我就直接去中華電信的辦事處申請從 vDSL 變更為 FTTH,速率維持 100/40M,一樣有綁中華電信 MOD

從申請到安裝師傅打電話跟你接洽裝機時間還蠻快的,通常都可以壓在一週內就是了

意外的是我這一棟已經有安裝 FTTH 需要的設備了,一樓的主弱電箱裡面已經有大樓光化箱,而每一層樓的分支弱電箱裡面都有光纖收容盒,應該是幾年前中華電信來重新佈線時順便安裝好的,光纖上的製造日期是 2014



先確定一下可以申請 FTTH,只要超過 100M 可以申裝,通常就是已經幫你安裝好 FTTH 設備了
2018_03_06_160806
充滿歷史包袱而凌亂的主弱電箱,室內電話的主幹線是之前重新拉線的
2018_03_06_160721
從光纖主幹分過來的光纖會進入大樓光化箱,再從淡黃色的大樓幹線拉到每一層樓的光纖收容盒去
2018_03_11_132228
家門口樓層弱電箱的光纖收容盒,說真的這工法好像不妥,但也是能通就是了
2018_03_11_132232
大樓幹線轉光纖收容盒的施工,感覺好像是光纖熔接後,用護套包好後膠帶纏一纏就收工了
2018_03_11_132238
淡黃色的大樓幹熔接上米白色的分線,進入光纖收容盒
2018_02_24_143341
我家這邊光纖到府的數據機是 Alcatel-Lucent I-040GW,是走 GPON 標準,EPON 標準的數據機則是 SUMITOMO FTE 系列

跟之前走單路雙絞銅纜的 vDSL 比較,純光纖的 FTTH 在延遲跟抖動上都大幅改善

完成安裝後,再來就是整線了

說到光纖與銅纜的不同,就是光纖由於物理特性的關係,不能走接近直角的路線,如果折到的話基本上光纖就會破損,而拆卸光纖的時候,SC ( Square Connector ) 接頭必須要抓住藍色或白色的部分,如果直接抓住光纖纜線本身拆卸,可能會把裸光纖拉出接頭

此外,光纖接頭對灰塵等外來污染物很敏感,拆卸時也要做好防護措施,避免入塵


2018_03_11_162822
趁這個機會把樓層弱電箱清理一下
2018_03_11_162830
光纖的部分用塑膠繞管包覆,從光纖收容盒出來的部分用更大線徑的塑膠繞管包覆
2018_03_11_162854
光纖收容盒內的 SC ( Square Connector ) 接頭,由於樓層弱電箱的尺寸問題,只能這樣了
2018_03_11_154636
從樓層弱電箱進入室內,左邊細細的就是包覆在塑膠繞管內的光纖
2018_03_11_161646
鎖上用塑膠瓦楞板製作的護蓋
2018_03_11_154714
用塑膠繞管包覆的光纖,型號應該是 2C-FL-NSS,華榮電線生產給中華電信的抗彎雙股光纖,目前只用到一股
2018_03_11_154656
因為不能走接近直角的路線,所以多餘的光纖要用這種方式去收納
2018_03_11_154730
套上塑膠繞管後,就可以避免無意間把光纖拉成直角的情況
2018_03_11_154650
I-040GW 不能直接使用原來 vDSL 數據機的鎖點,所以做了一個托架讓它固定位置

I-040GW 關閉硬體撥號,用無線網路分享器開啟 PPPoE 後測出來的成績

電力網路線後端的個人電腦測試出來的結果

PlayStation 4 Pro 內建網路測試出來的結果,PSN 好像一直都這種詭異速度

手賤很想看一下 I-040GW 的內部功能

這個部分怎麼操作就不敘述了,畢竟中華電信應該不希望你去惡搞,但網路上都可以查到帳號跟密碼就是了



登入後的主畫面就可以看到系統資訊

內建 PON 的狀態檢測,連光纖訊號品質都有

內建的異常狀態偵測也算詳盡

用 IPv6 網頁測一下對 IPv6 的支援性

大概就是這樣

2018-03-09

VFC HK417 改裝

去年六月份買了一把 VFC 的 HK417,並額外買了二十英寸槍管套件,當然也自己改了 A-Plus 的精密管跟 Hop-up 組,基本上都是放在家裡自己打爽的,畢竟這麼大一把下場打不如拿 MP7 或是 SCAR-H,你到定點後準備狙擊前都不知道死幾次了

那天想要拿出來打幾發的時候,突然發現有擊發但是打不出來,一開始以為是氣溫太低的關係所以調整了一下氣嘴,但還是打不出來,BB 彈會咬在槍機的 Hop-up 皮上面,導致重覆進彈後才從槍口滾出來

一股不詳的感覺油然而生,馬上開始細部分解,結果最糟的情況發生了,精密管變形,導致無法順利擊發


2017_06_21_185506
去年剛入手時的 VFC HK417,已經安裝二十英寸槍管跟長護木套件
2018_01_27_234339
BB 彈會咬在槍機的 Hop-up 皮上面
2018_01_28_002456
細部拆解後確認是精密管在進彈口的部分變形,導致無法順利擊發

精密管變形基本上就沒藥醫了,要找人把精密管修正回去感覺也是不划算,雖然這樣就是兩千丟水裡了,唉

找時間去了店家買了精密管跟新的 Hop-up 皮自己回來換,現貨沒有 510mm 那個長度上下的,就先挑個 455mm 吧,不過也是在拆解的時候,才發現 A-Plus 的 510mm 精密管其實也不是真正的 510mm,在前端有大概 45mm 的地方是把精密管外圍稍微車掉一點,然後套上一段碳纖之類的套管當作導流罩,所以精密管的部分大概也 450mm

總之就改了楓葉的 455mm 精密管跟同廠的 Hop-up 皮




2018_01_29_211334
楓葉的 455mm 精密管
2018_01_29_211330
就不特別講哪一家買的了
2018_01_29_211448
同樣是楓葉的 Hop-up 皮
2018_01_29_211514
在 VFC HK417 的 Hop-up 座有預留改裝時用來固定 Hop-up 皮的側孔
2018_01_29_211956
把 Hop-up 皮的側面固定條稍微修改一下,裝上精密管後擺好位置對準
2018_01_29_212116
修改過後的側面固定條可以吻合 Hop-up 座用來固定 Hop-up 皮的側孔
2018_01_30_221106
清理飛機之後準備安裝回槍機,注意氣密墊圈要裝上
2018_01_30_221224
而 VFC 原廠的提供的長六角扳手搭配棉花棒軸心,就可以對準槍機的螺絲孔
2018_01_30_221530
把飛機上油後安裝回槍機
2018_01_30_221618
把槍機上的強化鋼圈安裝回去

把變形的精密管替好,從發現問題到處理完成大概花了三天,包括除錯跟來回跑店家的時間,包括本來買了 TNT System 針對 VFC 槍系客製化的 APS-X 總成,結果發現 VFC HK417 因為內構比較獨特的關係,並不能直接安裝那套可以直接套用在 VFC HK416 跟 VFC M4 的改裝總成

然後又另外訂購了發現者( DISCOVERY )這個廠牌的狙擊鏡跟水平儀,斷斷續續弄了兩個禮拜全部完工,把這把 HK417 改到我個人最滿意的情況


2018_02_09_164812
改裝完成的全貌
2018_02_09_164822
DISCOVERY VT-1 狙擊鏡
2018_02_09_164824
額外訂的水平儀還蠻不錯的


額外分享一個防護套件的不正經用法,之前買給 SCAR-H 的狙擊鏡,物鏡端的保護蓋脆化了,因為找不太到可以替換的鏡頭蓋,所以買了這個通常是用在下場的防護套件,把淡黃色的透明護板噴黑之後,就可以當成防塵蓋了

這個防護套件通常的用法是用於保護瞄具、狙擊鏡的物鏡端,避免被直擊破損(那種真鐵如果被打壞大概會哭死

2018_02_05_001546
改裝過延長護木跟長槍管的 WE SCAR-H
2018_02_05_001600
把淡黃色的透明護板噴黑的防護套件
2018_02_05_001610
往下壓就可以收起