2016-07-29 23 views
0

Ich benutze Ratchet Websocket auf meinem Server. Es funktioniert gut ohne SSL, aber ich muss es mit SSL arbeiten lassen.Ratschen websocket SSL

Ich habe dieses stackoverflow post gelesen. Leider unterstützt die Unterstützung meines PAAS nicht httpd.conf. Sie rieten mir, den ProxyPass direkt in den .htaccess hinzuzufügen.

In Bezug auf die folgende Zeile in httpd.conf-Datei hinzufügen hier dann Ich möchte mitteilen, dass wir verwenden httpd nicht auf dem Server als Server Debian basiert und wir sind mit Apache Webserver. Ich glaube, Sie können die gleiche Zeile in htaccess-Datei verwenden oder es wäre besser, wenn Sie mit dem Entwickler diesbezüglich beraten können.

# ProxyPass for Ratchet with SSL 
ProxyPass /wss2/ ws://127.198.132.141:8000/ 

# Preventing the app from being indexed 
Header set X-Robots-Tag "noindex, nofollow" 

# Use the front controller as index file. It serves as a fallback solution when 
# every other rewrite/redirect fails (e.g. in an aliased environment without 
# mod_rewrite). Additionally, this reduces the matching process for the 
# start page (path "/") because otherwise Apache will apply the rewriting rules 
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl). 
DirectoryIndex app.php 

# By default, Apache does not evaluate symbolic links if you did not enable this 
# feature in your server configuration. Uncomment the following line if you 
# install assets as symlinks or if you experience problems related to symlinks 
# when compiling LESS/Sass/CoffeScript assets. 
# Options FollowSymlinks 

# Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve 
# to the front controller "/app.php" but be rewritten to "/app.php/app". 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    [...] 

Leider Hinzufügen von Proxypass/WSS2/ws: //127.198.132.141: 8000/abstürzt den Server, als ob die .htaccess nicht korrekt war.

Haben Sie irgendwelche Lösungen oder Hinweise?

UPDATE:

Von dem, was ich verstehen wir nicht in .htaccess verwenden Proxypass kann es nur in der Server-Konfiguration oder virtuellen Host-Konfiguration verwendet werden soll.

Ich versuchte es der Unterstützung zu erklären, aber sie scheinen nicht zu verstehen.

So ist es anscheinend verboten, ProxyPass in .htaccess zu verwenden.

"ProxyPass und ProxyPassReverse sind nur im Server verfügbar Konfig und virtuellen Host-Kontexte."

Daher, wenn Sie diese Zeile in der Server-Konfiguration nicht hinzufügen können, könnte es in den virtuellen Host-Kontexten hinzugefügt werden?

Ihre Antwort:

Als ich wieder alle Einstellungen auf Serverebene überprüft haben, die die Apache-Module und Firewall-Regeln enthält auch auf dem Server die Ratsche WebSockets der Lage zu machen, laufen die Regeln, die wir haben in Firewall hinzugefügt zeigt an, dass der gesamte Verkehr von außen ist auf dem Port 8000 erlaubt und ich glaube, dass sollte ausreichen, um externe Verbindungen für Websocket zulassen.

Ab jetzt scheint es, als ob Sie versuchen, die Verbindung mit den anderen Port (im Falle von https) zu machen. Wie wir den Server Einstellungen und Konfigurationen überprüft haben und alles scheint gut zu sein.

Es wäre sehr zu schätzen, wenn Sie den Entwickler in diesen Prozess beteiligt, so kann er Sie besser führen, wie er die Code-Ebene Dinge viel besser kennen.

versucht Gerade jetzt mit WSS zu verbinden werfen:

WebSocket-Verbindung zu 'WSS: //127.198.132.141/wss2/' ist fehlgeschlagen: WebSocket Öffnen Handshake

wurde abgesagt

Die Verwendung von http mit WS funktioniert gut.

+0

haben Sie das behoben? Ich habe das gleiche Problem – Andreah

+0

Hallo, leider nicht, da ich nicht viel auf meinem Host konfigurieren kann. Ich musste aufhören, SSL für jetzt zu verwenden. Ich bin immer noch daran interessiert, eine Lösung zu finden;). – Brieuc

+0

Ich repariere mit Port 8888. Ich habe mit 8080 ohne Erfolg versucht. Ich schreibe auch eine Antwort, hoffe es hilft. – Andreah

Antwort

1

In Ihrem virtuellen Host hinzufügen:

ProxyPass /wss2/ ws://yourdomain.xxx:8888/ (versuchen, mit Port 8888)

Sie vergessen nicht Apache Service

virtuellen Host Beispiel neu zu starten:

<IfModule mod_ssl.c> 
<VirtualHost *:443> 
     ServerAdmin [email protected] 
     DocumentRoot /var/www/html 

     <Directory /var/www/html/> 
      Options Indexes FollowSymLinks 
      AllowOverride All 
      Require all granted 
     </Directory> 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

     <IfModule mod_dir.c> 
      DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm 
     </IfModule> 

SSLCertificateFile /etc/letsencrypt/live/yourdomain.xxx/fullchain.pem 
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.xxx/privkey.pem 
Include /etc/letsencrypt/options-ssl-apache.conf 
ServerName yourdomain.xxx 
ProxyPass /wss2/ ws://yourdomain.xxx:8888/ 
</VirtualHost> 
</IfModule> 

Hier finden Sie ein voll funktionsfähiges Beispiel https://github.com/ratchetphp/Ratchet/issues/100