Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
Closed
Description
This just hangs without throwing an error or completing the request:
curl https://localhost:65443 -kExpected result
client receives
Cannot GET / server logs
[log] SNI: local.helloworld3000.com [log] SNI: undefined [log]{} [log] request [log] request for local.helloworld3000.com:65443/ Reduced Test Case
'use strict';varhttps=require('https');varfs=require('fs');varpath=require('path');varcrypto=require('crypto');varconnect=require('connect');module.exports.create=function(_securePort,_insecurePort){// connect / express appvarapp=connect();// SSL ServervarsecureContexts={};vardummyCerts;varsecureOpts;varsecureServer;varsecurePort=_securePort||443;// force SSL upgrade servervarinsecureServer;varinsecurePort=_insecurePort||80;functionloadDummyCerts(){varcertsPath=path.join(__dirname,'certs');varcerts={key: fs.readFileSync(path.join(certsPath,'server','dummy-server.key.pem')),cert: fs.readFileSync(path.join(certsPath,'server','dummy-server.crt.pem')),ca: fs.readdirSync(path.join(certsPath,'ca')).map(function(node){returnfs.readFileSync(path.join(certsPath,'ca',node));})};secureContexts.dummy=crypto.createCredentials(certs).context;dummyCerts=certs;}loadDummyCerts();app.use(function(req,res,next){console.log('[log] request for '+req.headers.host+req.url);next();});functionrunServer(){//provide a SNICallback when you create the options for the https serversecureOpts={//SNICallback is passed the domain name, see NodeJS docs on TLSSNICallback: function(domainname){console.log('[log] SNI:',domainname);console.log('[log] SNI:',secureContexts[domainname]);varsecureContext=secureContexts[domainname]||secureContexts.dummy;console.log('[log]',secureContext);returnsecureContext;}// fallback / default dummy certs,key: dummyCerts.key,cert: dummyCerts.cert,ca: dummyCerts.ca};secureServer=https.createServer(secureOpts);secureServer.on('request',function(req,res){console.log('[log] request');app(req,res);});secureServer.listen(securePort,function(){console.log("Listening on https://localhost:"+secureServer.address().port);});}runServer();}module.exports.create(443,80);directory layout
tree├── vhost-sni-server.js ├── certs │ ├── ca │ │ ├── dummy-root-ca.crt.pem │ │ ├── my-root-ca.crt.pem │ │ └── my-root-ca.key.pem │ ├── README.md │ └── server │ ├── dummy-server.crt.pem │ ├── dummy-server.key.pem │ ├── my-server.crt.pem │ └── my-server.key.pemMetadata
Metadata
Assignees
Labels
No labels