Порт - ваш надежный партнер в морской логистике
Порт HTTPS (Hypertext Transfer Protocol Secure) обеспечивает безопасную передачу данных между веб-браузером и сервером с использованием шифрования. Этот протокол использует порт 443 для установления соединения между клиентом и сервером.
Для начала, давайте рассмотрим пример кода на сервере, который слушает порт HTTPS. В примере мы будем использовать Node.js с использованием модуля Express и пакета OpenSSL для создания самоподписанного сертификата.
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const options = {
key: fs.readFileSync('private.key'),
cert: fs.readFileSync('certificate.crt')
};
app.get('/', (req, res) => {
res.send('Добро пожаловать на защищенный сервер HTTPS!');
});
const server = https.createServer(options, app);
server.listen(443, () => {
console.log('Сервер HTTPS запущен на порту 443');
});
В этом примере мы импортируем модули https, fs и express. Затем мы создаем экземпляр приложения Express и настраиваем маршрут для корневого URL-адреса, который будет отправлять "Добро пожаловать на защищенный сервер HTTPS!" в ответ на GET-запрос.
Мы создаем объект options, который содержит пути к приватному ключу (private.key) и самоподписанному сертификату (certificate.crt). Затем мы создаем сервер HTTPS, передавая эти параметры.
В строке server.listen(443, () => {...}) мы указываем порт 443, на котором наш сервер будет слушать входящие запросы. Так как порт HTTPS по умолчанию 443, нет необходимости явно указывать его, но в этом примере я использовал явное указание для ясности.
Теперь, когда у нас есть сервер, прослушивающий порт HTTPS, давайте рассмотрим пример кода на клиенте, чтобы установить безопасное соединение с этим сервером.
const https = require('https');
const options = {
hostname: 'localhost',
port: 443,
path: '/',
method: 'GET'
};
const req = https.request(options, (res) => {
console.log(`Код состояния: ${res.statusCode}`);
res.on('data', (data) => {
console.log(`Получены данные: ${data}`);
});
});
req.on('error', (error) => {
console.error(`Ошибка запроса: ${error}`);
});
req.end();
В этом примере мы также используем модуль https, чтобы отправить GET-запрос на наш сервер HTTPS. Мы создаем объект options, который содержит хост (localhost), порт (443), путь (/) и метод (GET) запроса.
Затем мы вызываем https.request(options, (res) => {...}), передавая параметры запроса, и создаем обработчик для ответа сервера. В обработчике выводим код состояния, полученный от сервера, и затем выводим полученные данные.
Если во время запроса произойдет ошибка, мы запустим обработчик ошибок и выведем сообщение об ошибке.
Таким образом, представленные выше примеры кода на сервере и на клиенте позволят вам настроить и установить безопасное HTTPS-соединение между сервером и клиентом на порте 443.
Важно отметить, что для использования HTTPS в боевом окружении рекомендуется получить сертификат от доверенного удостоверяющего центра (CA), а не использовать самоподписанный сертификат, как в нашем примере. В противном случае, браузер может выдавать предупреждение о недоверенном сертификате при подключении к вашему серверу.