Nicht erfasste SecurityError: Fehler beim Konstrukt 'WebSocket': unsichere WebSocket-Verbindung kann nicht eingeleitet werden, von einer Seite, die über HTTPS geladen
Bin ich mit dem GlassFish-Server 4.1/Java-EE-7. In meinem web.xml Datei, ich habe bereits die folgenden Einschränkungen.
<security-constraint>
<display-name>UserConstraint</display-name>
<web-resource-collection>
<web-resource-name>Provide a Name</web-resource-name>
<description/>
<url-pattern>/admin_side/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>ROLE_ADMIN</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Und das gleiche gilt für andere Behörden.
Seit transport-guarantee
eingestellt ist CONFIDENTIAL
, web-Seiten, die mit dem angegebenen URL-Muster /admin_side/*
laufen über einen sicheren Kanal (HTTPS
).
Während der Verwendung von WebSockets ist wie folgt (JavaScript),
var ws = new WebSocket("ws://localhost:8181/Context/Push");
es nicht schaffen einen ersten handshake. Der browser zeigt die folgende Warnung auf die browser-Konsole.
[blocked] The page at 'https://localhost:8181/Context/admin_side/Category' was loaded over HTTPS, but ran insecure content from 'ws://localhost:8080/Context/Push': this content should also be loaded over HTTPS.
Uncaught SecurityError: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
Wenn die <user-data-constraint>
Abschnitt aus web.xml entfernt wird in seiner vollständig web-Seiten laufen auf HTTP
. Danach ändern,
var ws = new WebSocket("ws://localhost:8181/Context/Push");
zu
var ws = new WebSocket("ws://localhost:8080/Context/Push");
funktioniert einwandfrei.
Was getan werden könnte, um WebSockets arbeiten über einen sicheren Kanal?
wss://
vor. Vielleicht fügen Sie ihn bitte als Antwort. Danke.Danke! Ich fügte hinzu, auch einige zusätzliche Informationen, die für zukünftige Referenz.
InformationsquelleAutor Tiny | 2015-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen mit
wss://
, das anzeigt, dass Sie wollen eine sichere websocket-Verbindung. Der browser verhindern, dass Sie von der Erstellung unsichere verbindungen von sicheren Seiten, denn es versteht, dass da von Ihnen angeforderte Seite mithttps://
es ist ein transport -, Sicherheits-Anforderung.Wenn Sie Ihren WebSocket-server läuft mit Ihrem Web-server, es werden wahrscheinlich die gleichen Sicherheits-Zertifikat, und Sie brauchen nicht, etwas zu tun. Wenn es nicht funktioniert, überprüfen Sie bitte Ihre WebSocket-server-Dokumentation über das hinzufügen der Zertifikate und ermöglicht
wss://
.InformationsquelleAutor vtortola