• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SecurityError: The operation is insecure.

Cloud VPS
0 głosów
273 wizyt
pytanie zadane 15 lutego 2020 w JavaScript przez MsMaciek123 Pasjonat (24,760 p.)

Witam, napisałem podstawową stronkę. Można podejrzeć tutaj: chickenstrips.gitlab.io/testwebsite

Problem w tym, że na lokalu wszystko działa, a gdy wrzucę na gitlab'a wywala błąd w konsoli po wejściu na tą stronę:

SecurityError: The operation is insecure.

Chodzi o linijkę:

var websocket = new WebSocket("ws://136.243.156.120:17114");

Ona łączy się z moim serwerem pod podanym portem.

Serwer jest napisany w Pythonie:

start_server = websockets.serve(main, "136.243.156.120", 17114)

 

Z tego co wyczytałem potrzebuję jakiegoś certyfikatu, dołączyć do tego serwera kilka linijek i połączyć się z "wss://" zamiast "ws://". (websockets.readthedocs.io/en/stable/intro.html)


Jednak nie za bardzo wiem jak uzyskać ten certyfikat.

1 odpowiedź

0 głosów
odpowiedź 15 lutego 2020 przez JAKUBW Nałogowiec (33,470 p.)
Potrzebujesz certyfikat SSL, żeby mieć bezpieczne połączenie (HTTPS/WSS). Teoretycznie możesz uzyskać certyfikat dla adresu IP, ale tego się raczej nie robi, więc raczej chcesz certyfikat dla domeny. Czyli potrzebujesz domeny (nazwy np. google.com, example.com, itd)  i łączyć się do domeny a nie do IP.

Domenę możesz sobie kupić lub wziąć jakąś za darmo np. z freenom.com (o ile nie jest zajęta). Darmowe domeny działają dokładnie tak samo jak płatne, jedynie końcówkę nie będziesz miał .com czy .pl tylko .ga, .tk, .cf itp. ale to w niczym nie przeszkadza. Jak już będziesz miał domenę i podepniesz sobie pod serwer będziesz mógł się łączyć po ładnej nazwie do swojego serwera.

Teraz potrzebujesz certyfikatu, możesz go sobie kupić, choć nie ma to sensu dla większości projektów. Lepiej wziąć za darmo od Let's Encrypt. Certyfikat zapewnia potwierdzenie tożsamości serwera.

Jeżeli korzystasz z serwera Apache2 lub Nigixa to możesz automatycznie zaaplikować sobie certyfikat za pomocą komendy certbot. Jeżeli nie korzystasz z nich a połączenie na port 17114 przechodzi bezpośrednio do node.js to w nim musisz sobie skonfigurować szyfrowanie. Jest to trudniejsze ale do zrobienia.
komentarz 15 lutego 2020 przez MsMaciek123 Pasjonat (24,760 p.)
Nie korzystam z node.js, tylko uruchamiam normalnie program w pythonie według tego tutoriala

https://websockets.readthedocs.io/en/stable/intro.html

Domenę jako tako mam, na tej stronie też jest napisane jak podpiąć certyfikat do mojego programu itd, tylko właśnie miałem problem z uzyskaniem takowego certyfikatu.

Mam dostęp do SSH, ale potrzebuję tylko pliku .pem (tak wynika z tego tutoriala) i właśnie nie wiem skąd go uzyskać.

Strona jest hostowana na GitLabie wraz z skryptem w JS do łączenia z serwerem poprzez websockety

 

Zaraz zobaczę Let's encrypt

Próbowałem jeszcze

https://www.digicert.com/kb/ssl-support/pem-ssl-creation.htm

Ale tam trzeba konto założyć i podać trochę danych, jakiś sposób na ominięcie tego?
komentarz 16 lutego 2020 przez JAKUBW Nałogowiec (33,470 p.)
Tutaj masz pokazane jak to zrobić automatycznie

https://certbot.eff.org/

Certbot zapisze certyfikaty i będziesz mógł z nich korzystać
komentarz 16 lutego 2020 przez MsMaciek123 Pasjonat (24,760 p.)

Może inaczej. Skorzystam z heroku. Tam dają mi domenę https://web-server-test123.herokuapp.com/ już z certyfikatem i wszystkim, tylko nie wiem jak ją podpiąć do websocketów. W sensie chciałbym jej użyć i na niej tak jakby postawić ten serwer websocket. Tylko wtedy mi wywala błąd:

cannot assign requested address

(web-server-test123.herokuapp.com/port 80)

komentarz 16 lutego 2020 przez JAKUBW Nałogowiec (33,470 p.)
Na porcie 80 nie powinieneś działać, tam ma być HTTP, którego jedynym zadaniem jest przekierować użytkownika na port 443 (HTTPS). Nie wiem ja uruchomić to na heroku, bo nigdy nie korzystałem z tego.

Podobne pytania

–1 głos
0 odpowiedzi 172 wizyt
0 głosów
1 odpowiedź 568 wizyt
+1 głos
0 odpowiedzi 532 wizyt
pytanie zadane 28 grudnia 2021 w JavaScript przez qax Dyskutant (8,060 p.)

93,467 zapytań

142,459 odpowiedzi

322,735 komentarzy

62,848 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...