Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 March 24

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Так, остановился, подумал и понял. Там прикол в том, что я  логинюсь через браузер. И в брузере сохраняется сертификат. А хочу я поднять приложение на ноде без браузера. То есть получить тот же сертификат после авторизации, без браузера.

Сразу вопрос, я могу его (сертификат) из браузера достать и приложить в приложение?

Это пока теоретические вопросы, чуть позже начну ковырять-разбираться. Как мне из приложения пройти эту авторизацию, без браузера.
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
Miseo
Подскажите, вот такую фигню выдало:
```
Error: certificate has expired
   at TLSSocket.onConnectSecure (_tls_wrap.js:1497:34)
   at TLSSocket.emit (events.js:315:20)
   at TLSSocket._finishInit (_tls_wrap.js:932:8)
   at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12) {
 code: 'CERT_HAS_EXPIRED'
}

```

это я просто пытаюсь подключится к WSS подключению.
Мне нужно как то сертификат приделать туда? или как?

Подскажите, впервые с таким сталкиваюсь
не надо вам никакой сертификат приделывать
ваше приложение подключается к серверу, получает сертификат
и при его проверке выясняет, что срок действия сертификата истек - CERT_HAS_EXPIRED
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexey M
не надо вам никакой сертификат приделывать
ваше приложение подключается к серверу, получает сертификат
и при его проверке выясняет, что срок действия сертификата истек - CERT_HAS_EXPIRED
Да, но в браузере то работает…
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
посмотрите в браузере информацию о подключении, что там за сертификат, какой его срок действия
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
В браузере выдаёт по запросу статуса это:

{
 "authenticated": false,
 "competing": false,
 "connected": true,
 "message": "",
 "MAC": "",
 "fail": ""
}


а в приложениеии по этому же запросу (урлу) который я делаю так

const https = require('https');

https.get(`https://localhost:5000/v1/api/iserver/auth/status`, (res) => {
   res.on('data', (d) => console.log({ d }));
}).on('error', (e) => console.error(e));


выдаёт так
```
Error: certificate has expired
   at TLSSocket.onConnectSecure (_tls_wrap.js:1497:34)
   at TLSSocket.emit (events.js:315:20)
   at TLSSocket._finishInit (_tls_wrap.js:932:8)
   at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12) {
 code: 'CERT_HAS_EXPIRED'
}
```
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
это ваш локальный сервер с самоподписанным сертификатом?
и браузер не ругается на него?
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexey M
это ваш локальный сервер с самоподписанным сертификатом?
и браузер не ругается на него?
Это не мой сервер, но да. Он локальный. Компания которая уже дофига на рынке всем этот локальный сервер выдаёт. И все через него работают. Написан он на Джаве и через него я могу получать данные по https & wss
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Из браузера я данные получаю. И вначале браузер действительно предложил мне не доверять сертификату. И я не могу ему не доверять )

А вот из приложения трабл…
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
ну а что браузер о сертификате говорит, если на замОк в строке адреса кликнуть?
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
скорее всего браузер вас предупреждает что срок сертификата истек, и вы добавляете его в исключение, мол - пофиг, игнорируй
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
ну а приложение ваше конечно же не игнорирует то что срок истек
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
О. Действительно. Истёк в 2019 году
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
О чем ошибка и говорит
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
можно не по https /wss конектиться, а по http/ws
если возможно, или смотреть опции https скорее всего там можно игнорировать проверку сертификата
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexey M
можно не по https /wss конектиться, а по http/ws
если возможно, или смотреть опции https скорее всего там можно игнорировать проверку сертификата
сейчас попробую через ws и http
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
https://stackoverflow.com/questions/10888610/ignore-invalid-self-signed-ssl-certificate-in-node-js-with-https-request
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
in code, before calling https.request()
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
Ну дальше наверно только код анализировать
источник

AM

Alexey M in NodeUA - JavaScript and Node.js in Ukraine
, (res) => {
разве не (req, res) должно быть?
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexey M
https://stackoverflow.com/questions/10888610/ignore-invalid-self-signed-ssl-certificate-in-node-js-with-https-request
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
in code, before calling https.request()
нене. сейчас там ситуация поменялась. попробую сперва всё что предлагают по ссылке и тогда напишу.
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexey M
, (res) => {
разве не (req, res) должно быть?
Этот код гет запроса из доки ноды ) к ним вопросы )
источник