Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> socket.io połączenie z domeną https
dvdx95
post 19.01.2018, 00:21:19
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 11.10.2016

Ostrzeżenie: (0%)
-----


Cześć, nie mogę poradzić sobie jak rozwiązać ten problem

Mianowicie serwer.js jest postawiny na http, domena ma certyfikat https:

wie ktoś jak nawiązać po stronie domeny albo jak skonfigurować połączenie aby nie wywalało błędu "mixed content was loaded over https but requested an insecure xmlhttprequest endpoint"

server.js
  1. var app = require('express')();
  2. var http = require('http').Server(app);
  3. var io = require('socket.io')(http);
  4. var port = process.env.PORT || 3000;
  5. var users = 0;
  6.  
  7. app.get('/', function(req, res){
  8. res.sendFile(__dirname + '/www/socket.io/index.html');
  9. });
  10.  
  11. io.on('connection', function(socket){
  12. console.log('a user connected');
  13. socket.on('disconnect', function(){
  14. console.log('user disconnected');
  15. });
  16. });


po stronie index.html

  1. var socket = io('http://localhost:3000/',);


W jaki sposób zrobić tutaj połączenie najlepiej na https://domena.com:3000 ?

Może ktoś nakieruje

jakoś udało mi się to ogarnąć, połączenie mam z tym że serwer nie ma komercyjnego certyfikatu ssl i z tym trochę lipa biggrin.gif

Ten post edytował dvdx95 18.01.2018, 23:50:45
Go to the top of the page
+Quote Post
hondek
post 19.01.2018, 00:29:23
Post #2





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Nie ma możliwości ładowania na stronie z SSL'em plików pochodzących z http://, właśnie o to w tym wszystkim chodzi, żeby nie było odwołań do niezabezpieczonych źródeł. Tak więc źródło również musi mieć https:// nie da się tego obejść.

Ten post edytował hondek 19.01.2018, 00:29:45


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
dvdx95
post 19.01.2018, 00:32:38
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 11.10.2016

Ostrzeżenie: (0%)
-----


Tak to już ogarnołem, zrobiłem sobie ssl na serwerze z tym że wiadomo nie są to komercyjne więc łącząc się z https mam połączenie niezabezpieczone :/

Go to the top of the page
+Quote Post
hondek
post 19.01.2018, 00:34:17
Post #4





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Prawdopodobnie dlatego masz niezabezpieczone, że ładujesz jakieś treści z http://, a to powoduje że połączenie nie jest bezpieczne. Cały content musisz miec na https://, wystarczy jeden obrazek na http, albo JS CSS cokolwiek i wszystko staje sie niezabezpieczone.


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
dvdx95
post 19.01.2018, 00:43:56
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 11.10.2016

Ostrzeżenie: (0%)
-----


nie chodzi o to

tworze połączenie ze swoim serwerem który ma cert ssl ale stworzony przezemnie tzn, moge łączyc się po https natomiast przeglądarka rozpozna to jako niezabezpieczone https bo nie mam komercyjnego certa na serwerze tylko na domenie.

z tego co rozumiem , to nie maja komercyjnego certa na serwerze nie połączę się po zabezpieczonym https z domeną
Go to the top of the page
+Quote Post
by_ikar
post 19.01.2018, 08:44:40
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


@ dvdx95 - aby móc nasłuchiwać szyfrowanych połączeń, musisz użyć odpowiedniego liba, w tym przypadku zamiast http, musisz użyć https i podać mu ścieżki do certyfikatów: https://nodejs.org/api/https.html#https_htt...requestlistener

Działa to identycznie jak w każdym jednym serwerze http, jak potrzebujesz w nginxie https'a to musisz podłączyć certyfikaty i połączenie na danym porcie oznaczyć jako ssl; identycznie w przypadku apache czy jakiegokolwiek innego serwera/proxy/reverse proxy.

Nie można podłączyć pod domenę certyfikatu, domena to jest tylko informacja o którą przeglądarka odpytuje serwer dns, który dopiero zwraca właściwy adres serwera. Dla przykładu dla domeny google:

Kod
dig +noall +answer google.com


Powinno zwrócić ci coś takiego:

Kod
google.com.        297    IN    A    172.217.20.206


Wówczas przeglądarka wie że ma wysyłać żądania do serwera pod tym adresem IP.

Certyfikaty podłącza się pod serwery http, które szyfrują przesyłane informacje za pomocą tego certyfikatu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 09:17