diff --git a/index.js b/index.js
index e5fd98d1504381d65c3e4f6a37430894fcc175ed..5a346865e6a0aea6faf4875f334b3578b23944b6 100644
--- a/index.js
+++ b/index.js
@@ -23,8 +23,10 @@ var bodyParser = require('body-parser');
 var BigNumber = require('bignumber.js');
 var fs = require('fs');
 var http = require('http');
+var https = require('https');
 var Web3 = require('web3');
 var web3 = new Web3();
+var argv = require('minimist')(process.argv.slice(2));
 
 Object.getPrototypeOf(web3.eth).awaitConsensus = function(txhash, mined_cb) {
     var ethP = this;
@@ -191,6 +193,19 @@ function formatAddress(s) {
     return undefined;
 }
 
+function readCertificateChain(path) {
+    var cert = [];
+    var ca = [];
+    fs.readFileSync(path, 'utf8').split("\n").forEach(function(line) {
+        cert.push(line);
+        if (line.match(/-END CERTIFICATE-/)) {
+            ca.push(cert.join("\n"));
+            cert = [];
+        }
+    });
+    return ca;
+}
+
 function startServer() {
     console.log("Starting web server");
     var app = express();
@@ -359,7 +374,23 @@ function startServer() {
             http_res.status(500).end(JSON.stringify({"error": "server error"}));
         }
     });
-    http.createServer(app).listen(80);
+    try {
+        http.createServer(app).listen(80);
+    } catch (err) {
+        console.log("Error starting HTTP server: " + err);
+    }
+    if (argv.https) {
+        try {
+            var options = {
+                key  : fs.readFileSync('/etc/ssl/private/star_ring_cx.key'),
+                cert : fs.readFileSync('/etc/ssl/certs/cert_star_ring_cx.pem'),
+                ca : readCertificateChain('/etc/ssl/certs/chain_star_ring_cx.pem')
+            };
+            https.createServer(options, app).listen(443);
+        } catch (err) {
+            console.log("Error starting HTTPS server: " + err);
+        }
+    }
 }
 
 unlockAccount();
diff --git a/package.json b/package.json
index ba0c889cf4b6338686abec0a2ff92cf763117fd5..564f5baf9a90b0da221954f49ac395bfaece8015 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
     "web3"        : ">=0.15" ,
     "express"     : ">=4.1.0",
     "body-parser" : ">=1.8.1",
-    "bignumber.js": ">=2.0.0"
+    "bignumber.js": ">=2.0.0",
+    "minimist"    : ">=1.0.0"
   }
 }
\ No newline at end of file