HTTPS
To create an application that uses the HTTPS protocol, set the httpsOptions
property in the options object passed to the create()
method of the NestFactory
class:
const httpsOptions = {
key: fs.readFileSync('./secrets/private-key.pem'),
cert: fs.readFileSync('./secrets/public-certificate.pem'),
};
const app = await NestFactory.create(AppModule, {
httpsOptions,
});
await app.listen(3000);
If you use the FastifyAdapter
, create the application as follows:
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ https: httpsOptions }),
);
Multiple simultaneous servers
The following recipe shows how to instantiate a Nest application that listens on multiple ports (for example, on a non-HTTPS port and an HTTPS port) simultaneously.
const httpsOptions = {
key: fs.readFileSync('./secrets/private-key.pem'),
cert: fs.readFileSync('./secrets/public-certificate.pem'),
};
const server = express();
const app = await NestFactory.create(
AppModule,
new ExpressAdapter(server),
);
await app.init();
http.createServer(server).listen(3000);
https.createServer(httpsOptions, server).listen(443);
info Hint The
ExpressAdapter
is imported from the@nestjs/platform-express
package. Thehttp
andhttps
packages are native Node.js packages.
Warning This recipe does not work with GraphQL Subscriptions.