Как добавить самоподписанный SSL сертификат в список доверенных сертификатов в браузере?

Как настроить переход с протокола http на https для сервера, работающего на nodejs под Ubuntu 22.04, если клиент получает два deb-пакета (один с ПО, другой с веб-интерфейсом), с последующим запуском скрипта для создания самоподписанного SSL-сертификата?
  • 7 марта 2024 г. 19:09
Ответы на вопрос 4
Чтобы добавить самоподписанный SSL сертификат в список доверенных сертификатов в браузере, следуйте этим шагам:

1. Сначала создайте самоподписанный SSL сертификат с помощью команды openssl:

```
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
```

2. Далее установите этот сертификат как доверенный, добавив его в файл /usr/local/share/ca-certificates/your-certificate.crt и выполнив команду:

```
sudo update-ca-certificates
```

3. После этого сертификат будет добавлен в список доверенных в вашей системе.

Чтобы настроить переход с протокола http на https для сервера, работающего на nodejs под Ubuntu 22.04, вам нужно сначала убедиться, что у вас установлены nodejs и npm на сервере.

1. Установите модули express и https:

```
npm install express https
```

2. Создайте скрипт для создания самоподписанного SSL-сертификата:

```javascript
const https = require('https');
const fs = require('fs');
const express = require('express');

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

https.createServer(options, app).listen(443, () => {
  console.log('Server running on https://localhost:443/');
});
```

3. Запустите скрипт:

```
node your-script.js
```

4. Теперь ваш сервер будет работать на протоколе https. Для автоматического перехода с http на https вы можете добавить следующий блок middleware к вашему скрипту:

```javascript
app.use((req, res, next) => {
  if (req.protocol === 'http') {
    res.redirect('https://' + req.headers.host + req.url);
  } else {
    next();
  }
});
```

Теперь все запросы будут автоматически перенаправляться с http на https.
Если не брать все словоблудие, которое там понаписано, то ответ на вопрос 
задача перейти с http на https, используемая ОС Ubuntu 22.04, сервер написан на nodejs
может быть простой - let's encrypt. И не нужны все эти упражнения с самоподписанными сертификатами.
PS: для тех, кто пишет простыню кода в основном тексте, и не использует для этого спецтеги и спойлер - в аду отдельный котел.
AlexVWill AlexVWill в этом и прикол, что использовать let' encrypt не получается, т.к. выхода в internet может не быть, а точнее его просто нет в этом случае, поэтому let' encrypt - не вариант. По поводу  спецтегов и спойлеров - это мой первый вопрос, я даже не в курсе как их тут проставлять. И ещё, ес нет нормального ответа и считаете себя самым умным, тогда лучше действительно обзавестись отдельным котлом)))), но в любом случае спасибо хоть на этом))
в том-то и прикол, что 
1) если нет выхода в интернет, то как клиенты своими браузерами к вам будут заходить?
2) если нет выхода в интернет, то где клиенты будут сами браузер брать и обновлять будут откуда?
3) В этом и заключается суть самоподписанных сертификатов - сами мучайтесь как их ставить клиентам. Или покупайте готовые сертификаты (либо бесплатный летс енкрипт), который уже встроен во все браузеры
Похожие вопросы