[Python] [node.js] Post data with pycurl and verify SSL certification

最近處理的一個feature,
要求透過HTTPS送出一些資料給另一台server,
並且必須驗證對方的SSL憑證。

在Client端(Python)選用pycurl這個lib,
由於另一端的API也還在開發中,
所以就自己另外寫了一個dummy server,
使用self-signed certificate來測試配對,
並且提供相對應的API來模擬互動。

以下是小範圍測試的時候使用的Script,dummy server則是用node.js隨手兜的。
步驟概述如下:

1. 做一把ssl key,如果已經有了就不用做了

2. /usr/bin/openssl req -new -key ssl.key -out server.csr -config localhost.conf
(localhost.conf是用來省略產生csr過程中一直回答問題的步驟,詳細內容請見
http://spin.atomicobject.com/2014/05/12/openssl-commands/ )

3. /usr/bin/openssl x509 -req -days 365 -in server.csr -signkey ssl.key -out server.crt

4. /usr/bin/node http_server.js

5. openssl s_client -connect localhost:443 -showcerts 

6. 把-----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE----- 之間那一段貼到rootca.pem裡

7. /usr/bin/python pycurl_verify_ssl_cert.py

其實我跟node.js不算熟,為何dummy server會用node.js?

剛好那天早上起床,朋友問我

「node.js可以做什麼?」

想著想著進辦公室剛好又看到旁邊同事桌上正好擺著node.js的書,

就爬了一下stackoverflow兜出了這個剛好夠用的工具。

幾年前第一次探索node.js,
試過用node.js搭配redis.io, mongodb做了個聊天室server,
另一頭則是html5+jQuery ui做出一些會在畫面上走來走去的「對畫框」
(對就真的這麼無聊)

實在是很不適應callback又callback的箭頭狀code啊....

(不過現在有promise可以解決這件事了我知道....)

這幾年node.js變成顯學當初應該多看兩眼的

留言