Posts

Showing posts from November, 2018

Chrome Extension: 使用 Native Messaging 的方式串接讀卡機

Image
前提 由於需用 NFC 登入系統 評估後使用 新錼 CL-2100R 來實作 構想是用 Chrome Extension 串接讀卡機可快速登入系統 因 NPAPI 已經被淘汰了 所以用 Native Messaging 來開發 網路上有關 winscard.dll 跟 native messaging 的資料不多 一開始一直被誤導 以為可以直接呼叫 winscard.dll 今天看到 這篇文章 才晃然大悟 直接在 path 中帶入 winscard.dll 是 NPAPI 的做法 (因為直接 call .dll 不安全,所以才捨棄 NPAPI 的啊 XD) 如何在 Mac 上測試是否有抓到讀卡機 可以輸入以下指令 如果有出現讀卡機的型號就代表有抓到 $ pcsctest MUSCLE PC/SC Lite Test Program Testing SCardEstablishContext : Command successful. Testing SCardGetStatusChange Please insert a working reader :(我在這邊就卡住了) 如何執行 Chrome Extension 這邊不講解要如何載入開發的程式 只提該怎麼把 Chrome Extension 程式呼叫出來 可在 Chrome 網址列輸入 chrome://apps 就會出現安裝好的 Extension 如果沒出現請確認 Extensions 頁面有開啟該程式 註 winscard.dll 是 Microsoft Windows 內建的動態連結函式庫 基本上讀卡機都是用 winscard.dll 來提供服務 Linux/Mac 上則是使用 PC/SC lite 通常讀卡機廠商都不是自己寫 driver 都用公版程式 Mac 上早在 10.9 版以後就不支援了(10.8 還支援) 我用過兩個牌子都一樣 問過讀卡機廠商也是不了了之 所以目前要在 Mac 上面支援是有困難的(目前的 Mac 版本是 10.14) Reference Chrome Native Messaging Exampl Calling a C dll through chrome browser exten...

使用 certbot 讓 wildcard certificate 可自動更新憑證

Image
由於 Let’s Encrypt Wildcard Certificate 使用 DNS 認證 所以無法用傳統的方式自動更新 ./certbot renew 如果你剛好使用 Cloudflare 的話就有福了! Cloudflare 支援 API key 認證 可以透過一些第三方的模組來自動認證 這樣就不用每三個月都要手動認證了 以下教學參考此篇文章 前情提要 下方使用 CentOS7 當作示範環境 如果你還沒裝 certbot,請先執行 $ yum install certbot 1. 首先要先登入 Cloudflare,右上角 My Profile 那就可找到 Global API Key 請點選 View 輸入密碼就會出現,這把 Key 很重要請小心保管 2. 由於這把 Key 很重要,所以要放在一個安全的地方 原作者把它放在 /root/.secrets 裡面(你要改地方也行,最後的參數路徑記得改就好) 但系統預設沒有 /root/.secrets 這個目錄 所以要先建立這個目錄 $ mkdir /root/.secrets 然後把下面這兩行填好後放到 /root/.secrets/cloudflare.ini 裡面 dns_cloudflare_email = "請填你的cloudflare帳號,也就是email" dns_cloudflare_api_key = "請輸入上述的 Global API Key" 3. 修改 /root/.secrets/cloudflare.ini 權限 $ sudo chmod 0700 /root/.secrets/ $ sudo chmod 0400 /root/.secrets/cloudflare.ini 4. 安裝 Certbot 及 CloudFlare DNS 認證套件 $ sudo yum install python-pip $ sudo pip install certbot-dns-cloudflare 5. 申請 Wildcard SSL 憑證 example.com 請帶入自己的 domain $ sudo /usr/local/bin/certbot certonly --dns...