Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> socket.io połączenie z domeną https
dvdx95
post
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 (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował dvdx95 18.01.2018, 23:50:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





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

Posty w temacie


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

 



RSS Aktualny czas: 18.10.2025 - 14:14