You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Koa.js middleware to force HTTPS connection on any incoming requests. In case of a non-encrypted HTTP request, koa-force-https automatically redirects to an HTTPS address.
constfs=require('fs');consthttp=require('http');consthttps=require('https');constKoa=require('koa');constforceHTTPS=require('koa-force-https');constoptions={key: fs.readFileSync('ssl-certificate.key'),cert: fs.readFileSync('ssl-certificate.crt')}constapp=newKoa();app.use(forceHTTPS());app.use((ctx)=>{ctx.body='Hello! This is an HTTPS connection.';});// Runs 2 servers for the application// Requests from the HTTP server will be redirected to the HTTPS serverhttp.createServer(app.callback()).listen(80);https.createServer(options,app.callback()).listen(443);
Some results requests for this example
Request URL
Status Code
Location
http://example.com
301
https://example.com/
http://www.example.com
301
https://www.example.com/
http://www.example.com/news
301
https://www.example.com/news
http://www.example.com/?id=1
301
https://www.example.com/?id=1
http://example.com/news?id=1
301
https://example.com/news?id=1
https://example.com
200
no redirect
https://www.example.com
200
no redirect
Redirect requests from http to https (using HTTP/2 protocol) to hostname example.com using the HTTP status code 307 ("307 Temporary Redirect")
constfs=require('fs');consthttp=require('http');consthttp2=require('http2');constKoa=require('koa');constforceHTTPS=require('koa-force-https');constoptions={key: fs.readFileSync('ssl-certificate.key'),cert: fs.readFileSync('ssl-certificate.crt')}constapp=newKoa();app.use(forceHTTPS(undefined,'example.com',307));app.use((ctx)=>{ctx.body='Hello! This is an HTTPS connection using HTTP/2 protocol.';});http.createServer(app.callback()).listen(80);http2.createSecureServer(options,app.callback()).listen(443);