HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a separate module.
An Agent object for HTTPS similar to http.Agent
. See https.request()
for more information.
This class is a subclass of tls.Server
and emits events same as http.Server
. See http.Server
for more information.
callback
<Function>
See server.close()
from the HTTP module for details.
Starts the HTTPS server listening for encrypted connections. This method is identical to server.listen()
from net.Server
.
msecs
<number> Defaults to 120000 (2 minutes).callback
<Function>
See http.Server#timeout
.
See http.Server#keepAliveTimeout
.
options
<Object> Accepts options
from tls.createServer()
and tls.createSecureContext()
.requestListener
<Function> A listener to be added to the request
event.Example:
// curl -k https://localhost:8000/ const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') }; https.createServer(options, (req, res) => { res.writeHead(200); res.end('hello world\n'); }).listen(8000);
Or
const https = require('https'); const fs = require('fs'); const options = { pfx: fs.readFileSync('test/fixtures/test_cert.pfx'), passphrase: 'sample' }; https.createServer(options, (req, res) => { res.writeHead(200); res.end('hello world\n'); }).listen(8000);
options
<Object> | <string> | <URL> Accepts the same options
as https.request()
, with the method
always set to GET
.callback
<Function>
Like http.get()
but for HTTPS.
options
can be an object, a string, or a URL
object. If options
is a string, it is automatically parsed with url.parse()
. If it is a URL
object, it will be automatically converted to an ordinary options
object.
Example:
const https = require('https'); https.get('https://encrypted.google.com/', (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { process.stdout.write(d); }); }).on('error', (e) => { console.error(e); });
Global instance of https.Agent
for all HTTPS client requests.
options
<Object> | <string> | <URL> Accepts all options
from http.request()
, with some differences in default values:protocol
Defaults to https:
port
Defaults to 443
.agent
Defaults to https.globalAgent
.callback
<Function>
Makes a request to a secure web server.
The following additional options
from tls.connect()
are also accepted when using a custom Agent
: pfx
, key
, passphrase
, cert
, ca
, ciphers
, rejectUnauthorized
, secureProtocol
, servername
options
can be an object, a string, or a URL
object. If options
is a string, it is automatically parsed with url.parse()
. If it is a URL
object, it will be automatically converted to an ordinary options
object.
Example:
const https = require('https'); const options = { hostname: 'encrypted.google.com', port: 443, path: '/', method: 'GET' }; const req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { process.stdout.write(d); }); }); req.on('error', (e) => { console.error(e); }); req.end();
Example using options from tls.connect()
:
const options = { hostname: 'encrypted.google.com', port: 443, path: '/', method: 'GET', key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') }; options.agent = new https.Agent(options); const req = https.request(options, (res) => { // ... });
Alternatively, opt out of connection pooling by not using an Agent
.
Example:
const options = { hostname: 'encrypted.google.com', port: 443, path: '/', method: 'GET', key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), agent: false }; const req = https.request(options, (res) => { // ... });
Example using a URL
as options
:
const { URL } = require('url'); const options = new URL('https://abc:[email protected]'); const req = https.request(options, (res) => { // ... });
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v8.x/docs/api/https.html