Posts

Showing posts with the label nodejs

如何在 node(.js)上建立 HTTPS How to build HTTPS connection on Node(.js)

大病初癒,大概確認研究手法後,終於又可以開始寫程式了... (茶 今天想要加點東西,想到由於現在的網路攻擊頻繁,HTTPS已變成連線的主流,於是想試試如何在 node(.js) 上建立 HTTPS連線。 根據 node 官方文件 說明顯示,僅需要三個步驟: 1: var https = require('https'), 2: options = { 3: key: fs.readFileSync('./path/keys/agent-key.pem'), 4: cert: fs.readFileSync('./path/keys/agent-key-cert.pem') 5: }; 6: var serv = https.createServer(options, app); Line 1: 引用https library Line 2: 讀取 pem certificate 跟 key Line 3: 加入 createServer 參數 實際在實作過程中發生了些問題,這裏記錄一下。 問題一:無法連上HTTPS。 一開始利用 curl -k https://localhost:7878/ curl: (35) Server aborted the SSL handshake 發生了 "server aborted the SSL handshake" 發現產生的 cert.pem 是空的,於是發生此錯誤。 PS. server 端則是出現 exception:Missing PFX or certificate + private key 。 問題二:如何產生pem 參考 StackOverFlow: create HTTPS server with Node.js ,如下的 Line 1 跟 Line 3. 1: openssl genrsa 1024 > key.pem 2: WARNING: can't open config file: /opt/anaconda1anaconda2anaconda3/ssl/openssl.cnf 3: openssl...

Docker 筆記(一)

今天總算有時間花了個下午摸一下『Docker』:一個強大的 container,然後做了一個node(.js)的實作,在這裡記錄一下。 Q-000:docker是什麼?(from 良葛格部落格 ) 英文是容器,光看名字但仍然是霧裡看花。其實就類似早先使用的vmware或virtual box的概念。主要是提供一個 lightweight virtual box,讓使用者能透過 cmd tool 針對 applications 的作業環境的管理及維護,另外加入了 git 的觀念,把  os 當作是一個 repository 管理。 所以,個人的認知是 docker = lightweight Virtual Box + github。 接下來就要多搞懂 images, container 及 data management 了,當然 container hub 的重要性就看有沒有要備份了。 這裏我也弄了一下簡單的 node app on Docker , 原碼放在  github  及 hub上的  image  。 *也不只能透過cmd tool,官方有釋出 Kitematic 作為圖形介面的管理。 目前我用的版本是 v1.6.0 (2015/04/25)。安裝時主要包含四個元件:  - boot2docker  - boot2docker management tool v1.6.0  - docker client v1.6.0  - virtual box v4.3.26- 執行方式可透過 /application 或是 cmd tool 執行 boot2docker。 最初安裝時會在 $(home)/.boot2docker 放置 image檔,然後要設置環境變數到 .bash file。 像安裝完 virtualbox 一樣,下一件事就是安裝 OS,可透過 cmd 安裝。 docker pull debain:latest *debain 最新是 7.4 (wheezy) 常用的 docker 參數: -t: tty to container -i: interactive mode -v: mount a host d...

關於 iframe 上某個 element 的全螢幕顯示 (fullscreen)

馬的, 為了這個效果花了我一個晚上, 所以實在有必要來記錄一番. 問題:如何於網頁上針對某個 element 加入 fullscreen 效果 做法: server: node.js html: jade engine (1)透過 iframe 將 index.html 選定的分頁, 轉到 fstest.html. (2)由於 fullscreen 預設是 disable, 這時候需要加入 webkitAllowFullScreen, mozAllowFullScreen, allowFullScreen 等的屬性, 告訴 browser 啟用該功能. (連結一) (3) 參考連結二的 js (4) 加一個屬性在 jade, css 或 js 上看似都可以實現,  可時常 trace 源碼時要找某個功能卻不知道對方加在哪裡 or js 直接 import 可還是看不到效果花了一晚才知道原來是 iframe 在作怪, 而作者把這屬性的實現嵌在 css 裏. [參考] 連結一 [參考] 連結二 心得:web design 還是要有個 css designer 搭配會比較好 orz...