Skip to main content

[Raspberry pi] 陽台的老鼠偵測器

前言: 話說前陣子爸爸家陽台不斷出現米奇老鼠,立刻清理陽台所有東西,然後又跟市政部門反映問題,可是情況還沒有好轉,米老鼠來完一隻又一隻,我爸陽台在老鼠界應該是網紅打卡聖地(誤),要不然就是米奇老鼠版米奇林三星餐廳(?) 雖然我們抓到了三隻,到上兩個禮拜為止還有至少一隻一直抓不到,每天淩晨還會來吃事後煙留下老鼠屎,真_北。 這隻老鼠對傳統攻擊有抗性,有IT9朋友前陣子用Raspberry pi自製了一台electric mouse trap ,用pi的超聲波雷達放在鞋盒裡,鞋盒裡有一堆食物,底部佈了鐵網,偵測到有老鼠進去以後立即關門通9V電,通個1分鐘再放牠離開,大推我自己也造一台 (Youtube片搜尋一大堆,人類真變態啊,朋友好變態啊)。可是我覺得這樣又好像有點太殘忍,不如先偵測牠們什麼時候來,嚇嚇牠們看看有沒有效果再說吧。 目的: 用Raspberry pi及手上有的感測器弄一隻放陽台用來偵測和嚇嚇老鼠的東西,並把紀錄圖像化到雲端給老爸使用。 邏輯及設計: 當老鼠進入偵測範圍,Motion Sensor偵測到生物活動Raspberry pi 處理來自Motion Sensor的訊號,如果夠強的話開始準備作出回應 Raspberry pi在Angry cats sounds中隨機選出叫聲,再經由Speaker輸出貓叫聲 Raspberry pi指示強光元件發出強光束照射目標 把偵測計數上傳到雲端圖表 材料: Sensor 在網路上看了一些Raspberry pi wild animal camera ,很多也是用Motion Sensor先偵測動物再來,我用的是PIR Motion Sensor被動式紅外線感測器,有低耗電成本便宜的好處。[1],而且可手動調整靈敏度及反應時間。  PIR Motion Sensor就是下面這個 圖片來源: learn.adafruit.com 可手動調整敏感度還有反應時間,這個有點不好調,要試好多遍才找到最佳位置。 可以在Raspbian中輸入pinout查詢GPIO避免插錯 圖片來源: learn.adafruit.com . 一台Raspberry pi 這次使用較舊的Raspberry pi model B+ 萬一老鼠生氣被咬爛錢包也不太痛 . ...

[Windows Server 2008] 如何設定IIS的自我簽署憑證? (2015/12/30更新)

序:
最近用Microsoft的WebAPI寫了一支程式,因為連結中包含敏感資訊,所以要確保連線要被加密。但是由於程式只供內部系統使用,所以又未至於誇張到使用外部授權單位所發的憑證。看了一堆文章以後,發現IIS中 "自我簽署憑證" 跟OpenSSL兩種方法應該乎合我的需求,所以就開始設定囉。

什麼是 自我簽署憑證?
根據Microsoft的說法:"自我簽署憑證不是由憑證授權單位所發行。這些憑證可確保網站連線會被加密;但是,它們無法確保產生憑證之組織的身分識別。如果加密資料的能力比識別發行組織的能力還重要,則自我簽署憑證非常有用。"加密資料正正是我想要的東西 XD

怎樣做?

  • IIS中自我簽署憑證:很多大大也發過相同的文章,我也不再次發明輪胎了;91大有很詳細的說明可以參考
    • 2015/12/30補充:

      如果要自我簽署一張超過一年期限的憑證,例如10年的要怎麼辦?

      1. 首先從微軟網站下載SelfSSL套件
      http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17275

      2. 檢查IIS中是否已安裝以下元件,沒有的話要先裝回,不然會出現「Error opening metabase: 0x80040154」的錯誤

      3. 用Administrator的權限打開cmd,輸入 selfssl /n:cn=www.mydomain.com /v:3650 /s:/k:2048

      • /n:cn=www.mydomain.com - 此SSL是給www.mydomain.com.  cn= (common name) 最好不要不填,不然將來要找這張憑證會很麻煩
      • /v:3650 - 憑證有效日,單位為天數,例如憑證有效期為十年的話值為3650。
      • /s:8 - IIS中安裝此憑證的Site編號。要查出Site的ID在cmd中可輸入%systemroot%\system32\inetsrv\APPCMD list site <site名稱>
      • /k:2048 - 金匙長度,單位為bits.
      4. 完成後可以打開IIS,在左邊樹狀目錄下點root,也就是伺服器圖示,然後按Server Certificates,應該可以看到剛新增的憑證,接下來Site就可以使用用這張自我簽署的憑證了。

  • OpenSSL:利用Win32 OpenSSL這套工具產生憑證。
    方法流程
    • 首先產生一張Root CA的key 這篇教學
    • 然後產生一張自我簽署的Root CA OpenSSL憑證
    • 再利用上面的Root CA憑證產生Private Key 參考
    • 再利用Private Key產生IIS可用的.pfx檔案格式 參考
    • 例子
      • set RANDFILE=c:\OpenSSL\.rnd

      • set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

      • genrsa -out xxxxxxx.key 2048 -des3 xxxxxxx

      • req -new -x509 -days 36135 -key xxxxxxx.key -out xxxxxxx.crt



程式端又怎樣?
程式端也是很簡單,如果你使用的是WebClient,當存取自我簽署憑證應該會出現 "基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係。"或 "The underlying connection was closed: Could not establish trust relationship for SSL/TLS secure channel" 的錯誤訊息。
解決方法只需要在宣告WebClient以後加入
"ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };"
就可以解決了。這句意思是說關掉WebClient的預設防護機制,強列建議只適用於已知安全的網站/Web Service上。

希望可以幫助大家解決公司內部加密通訊的一些問題 :-)。有錯誤請指教!



Comments

Popular posts from this blog