I have configured my SSL enpoint, and I can confirm that that is working. When I go into my log, I see the following:
Jul 13 08:14:10 support-dash app/web.1: Express server listening on port 17621
Jul 13 08:14:10 support-dash heroku/web.1: Stopping all processes with SIGTERM
Jul 13 08:14:11 support-dash heroku/web.1: State changed from starting to up
Jul 13 08:14:13 support-dash heroku/web.1: Process exited with status 143
Jul 13 08:15:48 support-dash heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/ host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30000ms status=503 bytes=0
Jul 13 08:16:18 support-dash heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/favicon.ico host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30007ms status=503 bytes=0
I tried to track down some information on exit code 143, and why all processes are being stopped. Check out the following server file:
var http = require('http');
var https = require('https');
var fs = require('fs');
var express = require("express");
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.logger());
app.get('/', function(request, response) {
response.send('Hello World 2!');
});
var privateKey = fs.readFileSync(__dirname + '/ssl/server.key').toString();
var certificate = fs.readFileSync(__dirname + '/ssl/gandiSSL.pem').toString();
var options = {
key: privateKey,
cert: certificate
};
https.createServer(options, app).listen(process.env.PORT, function () {
console.log("Express server listening on port " + app.get('port'));
});
Thanks for your feedback in advance. I can provide more details if needed.
------ SOLUTION (EDIT) -------
See my answer below.
I found the answer here: Heroku Error H13 on ExpressJS Node HTTPS Server
"SSL termination occurs at Heroku's load balancers; they send your app plain (non-SSL) traffic, so your app should create a non-HTTPS server."
I then changed my file to:
var http = require('http');
var express = require("express");
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.logger());
app.get('/', function(request, response) {
console.log('[support dash] processing get request')
response.send('Hello World 2!');
});
app.listen(process.env.PORT, function () {
console.log('***** exp listening on port: ' + process.env.PORT);
});
Everything is working great now over https. Good Luck!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With