Use Node. js to implement https-based Restful webservice
1. create Certificate file bash-3.2 $ bash-3.2 $ mkdir sslbash-3.2 $ cd sslbash-3.2 $ openssl genrsa-out key. pem 1024 Generating RSA private key, 1024 bit long modulus .................................... ++ .......... ++ e is 65537 (0x10001) bash-3.2 $ openssl req-new-key. pem-out certrequest. csrYou are about to be asked to enter information that will be inreceivatedinto your certificate request. what you are about to enter is what is called a Distinguished Name or a DN. there are quite a few fields but you can leave some blankFor some fields there will be a default value, If you enter '. ', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []: Please enter the following 'extra 'attributesto be sent with your certificate requestA challenge password []: An optional company name []: bash-3.2 $ bash-3.2 $ bash-3.2 $ openssl x509-req-in certrequest. csr-signkey key. pem-out cert. pemSignature oksubject =/C = AU/ST = Some-State/O = Internet Widgits Pty LtdGetting Private keybash-3.2 $ bash-3.2 $2. vim app. js 1 var express = require ('express '), https = require ('https'), fs = require ('fs'); 2 3 var privateKey = fs. readFileSync ('. /ssl/key. pem '). toString (); 4 var certificate = fs. readFileSync ('. /ssl/cert. pem '). toString (); 5 var ca = fs. readFileSync ('. /ssl/certrequest. csr '). toString (); 6 7 var options = {8 key: privateKey, 9 cert: certificate, 10 ca: ca 11} 12 13 var app = express (); 14 15 // RESTful API 16 app. get ("/testapi", function (req, res) {17 res. send ('test api '); 18}); 19 20 app. get ("/", function (req, res) {21 res. send (''); 22}); 23 24 https. createServer (options, app ). listen (443, function () {25 console. log ('https server started successfully. '); 26}); 27 28 app. listen (80); 3. node app