Перейти к содержанию

Использование HTTPS

Протокол передачи данных HTTPS — это тот же протокол HTTP с поддержкой шифрования, которое обеспечивают протоколы криптографии SSL и TSL. Обычно HTTPS используется там, где необходима безопасная передача личных данных, и занимает 443 порт (обычный HTTP использует 80 порт).

Принцип работы протокола HTTPS строится вокруг сертификата сервера, открытого и закрытого ключей. Сертификат используется для идентификации сервера клиентом, открытый ключ посылается клиенту и используется для шифрования сообщений, посылаемых серверу, которые могут быть расшифрованы только закрытым ключом. Сам закрытый ключ хранится на сервере. Подробно о протоколе HTTPS можно прочитать здесь.

В Node.js HTTPS сервер создается с помощью встроенного модуля https.

app.js

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
const express = require('express');
const app = express();
const https = require('https');
const fs = require('fs');

const host = '127.0.0.1';
const port = 7000;

https
    .createServer(
        {
            key: fs.readFileSync('/cert/key.pem'),
            cert: fs.readFileSync('/cert/cert.pem'),
        },
        app
    )
    .listen(port, host, function () {
        console.log(
            `Server listens https://${host}:${port}`
        );
    });

Обратите внимание, что сертификат и закрытый ключ задается с помощью свойств key (закрытый ключ) и cert (сертификат) объекта, передаваемого методу createServer() первым аргументом.

Для использования в Node.js HTTPS совместно с фреймворком Express, создание сервера осуществляется с помощью метода createServer(), которому вторым параметром передается экземпляр express.

Комментарии