Kryptering af trafik med TLS og wss://
Beskyt WebSocket-data under transport ved at levere forbindelser over TLS og opgradere ws:// til det sikre wss://-skema i en Spring-applikation.
Kryptering af trafik med TLS og wss:// er en gratis WebSockets og realtidssystemer med Spring-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i WebSockets og realtidssystemer med Spring, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. WebSockets og realtidssystemer med Spring-kurset indeholder 4 lektioner i alt.
Hvorfor almindelig ws:// er risikabel
En WebSocket, der åbnes over ws://, sender hver frame som klartekst. Alle på netværksvejen kan læse eller manipulere meddelelserne.
For alle rigtige applikationer skal du kryptere kanalen, ligesom du ville gøre med HTTPS.
Introduktion til wss://
Skemaet wss:// er WebSocket over TLS. Det er den nøjagtige pendant til https://: Handshaken og alle efterfølgende frames sendes gennem en krypteret tunnel.
ws://→http://wss://→https://
TLS afsluttes samme sted som HTTPS
Da WebSocket-handshaken er en HTTP-opgraderingsanmodning, sikrer aktivering af HTTPS på din Spring-server automatisk opgraderingen. Det samme certifikat beskytter både REST- og WebSocket-trafik.
Generering af et nøglelager
Spring Boot læser et Java-nøglelager (PKCS12 eller JKS) til sit TLS-materiale. Til lokal test kan du selvsignere et med JDK's keytool.
keytool -genkeypair -alias coddy -keyalg RSA -keysize 2048 \
-storetype PKCS12 -keystore keystore.p12 -validity 365Konfiguration af TLS i application.properties
Angiv nøglelageret for Spring Boot, og aktivér SSL. Derefter bruger den indlejrede server HTTPS, så wss:// virker med det samme.
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=changeit
server.ssl.key-alias=coddyForbindelse fra browseren
Klienten bruger ganske enkelt det sikre skema. Browseren udfører TLS-handshaken før WebSocket-opgraderingen.
const socket = new WebSocket('wss://api.example.com:8443/ws');
socket.onopen = () => console.log('Secure socket open');Regler for blandet indhold
Browsere håndhæver politikken for blandet indhold: En side, der er indlæst over https://, må kun åbne wss://-sockets, aldrig ws://. Sørg altid for, at sideskemaet passer til socketskemaet.
Afslutning af TLS ved en proxy
I produktion afsluttes TLS ofte ved en reverse proxy (Nginx, en ALB). Proxyen har certifikatet og videresender ukrypteret trafik internt. Sørg for, at den videresender headerne Upgrade og Connection, ellers mislykkes handshaken.
location /ws {
proxy_pass http://backend:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}Fornyelse af certifikater
TLS-certifikater udløber. Brug en automatisk udsteder som Let's Encrypt med automatisk fornyelse, så langvarige WebSocket-klienter aldrig rammer et udløbet certifikat. Planlæg logik til genforbindelse i det korte øjeblik, hvor en proxy genindlæses.
Håndhævelse af sikre forbindelser i Spring
Du kan afvise alle anmodninger uden TLS i sikkerhedslaget, så en forkert konfigureret klient ikke kan falde tilbage til klartekst.
http.requiresChannel(channel -> channel.anyRequest().requiresSecure());Stærk cipher-konfiguration
Ud over at aktivere TLS skal du begrænse dig til moderne protokoller og ciphers. Deaktivér TLS 1.0/1.1, og foretræk cipher-suiter med forward secrecy.
server.ssl.enabled-protocols=TLSv1.3,TLSv1.2
server.ssl.ciphers=TLS_AES_256_GCM_SHA384,ECDHE-RSA-AES256-GCM-SHA384Hurtigt tjek
Test din forståelse af sikker WebSocket-transport.
Opsummering
Du har sikret WebSocket-trafik under transport:
wss://er WebSocket over TLS, pendanten til HTTPS- Aktivering af SSL i Spring Boot sikrer automatisk handshaken
- HTTPS-sider skal bruge
wss://(regler for blandet indhold) - Proxyer skal videresende headeren
Upgrade, når TLS afsluttes - Håndhæv sikre kanaler og moderne ciphers, og automatisér fornyelse
Lær WebSockets og realtidssystemer med Spring med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Kryptering af trafik med TLS og wss://” gratis?
Ja — hele teksten til “Kryptering af trafik med TLS og wss://” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af WebSockets og realtidssystemer med Spring-kurset, skal du opgradere til CoddyKit PRO. WebSockets og realtidssystemer med Spring-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kryptering af trafik med TLS og wss://”?
Beskyt WebSocket-data under transport ved at levere forbindelser over TLS og opgradere ws:// til det sikre wss://-skema i en Spring-applikation. Du øver dig i WebSockets og realtidssystemer med Spring med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på WebSockets og realtidssystemer med Spring?
Der kræves ingen tidligere erfaring. WebSockets og realtidssystemer med Spring på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Kryptering af trafik med TLS og wss://”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne WebSockets og realtidssystemer med Spring-lektion?
Ja. Alle WebSockets og realtidssystemer med Spring-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Sikkerhedsudfordringer ved WebSockets
- Integration med Spring Security
- Autentificering og autorisation
- Kryptering af trafik med TLS og wss://