Behandeln Sie die DST -Root Ca x3 um, lass uns zur Laufzeit mit Java SSL -Zertifikatversion verschlüsselnJava

Java-Forum
Anonymous
 Behandeln Sie die DST -Root Ca x3 um, lass uns zur Laufzeit mit Java SSL -Zertifikatversion verschlüsseln

Post by Anonymous »

Ich implementiere einen WebSocket -Server, mit dem einige Clients über WebSocket verbunden sind.

Code: Select all

WebSocket socket = WebSockets.newSocket(WebSockets.toSecureWebSocketUrl("myDomain", 8080));
< /code>
löst diesen Fehler aus: < /p>

Es wurde nicht geschafft, eine Öffnungshandshake -Anforderung an den Server zu senden: PKIX -Pfad
fehlgeschlagen:
Sun.security.Provider.Certpath.suncertpathbuilderex -. /> < /blockquote>
Ich weiß, dass die Client -Seite der WebSocket -Host und der Port in Ordnung sind, denn wenn ich es versuche, während der WebSocket -Server nicht aktiv ist, ist die Fehlermeldung korrekt "Verbindung abgelehnt". Haftet mit dieser alten Version aufgrund ihrer Abschaltung und dann diesen Fehler? So erneuern Sie das Zertifikat auf dem Server mit certbot, verwendet jedoch die DST -Root -CA X3 -Version für die neue.package ...textwebsockets;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.ScreenUtils;
import com.github.czyzby.websocket.WebSocket;
import com.github.czyzby.websocket.WebSocketListener;
import com.github.czyzby.websocket.WebSockets;

import java.io.ByteArrayInputStream;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import javax.security.auth.x500.X500Principal;

public class TestWebSockets extends ApplicationAdapter {
public final String LOG_TAG = "LOG_TestWebSockets";

SpriteBatch batch;
Texture img;

@Override
public void create () {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");

// https://github.com/MrStahlfelge/gdx-websockets/tree/master
WebSocket socket = WebSockets.newSocket(WebSockets.toSecureWebSocketUrl("myDomain", 8080));
socket.setSendGracefully(true);
socket.addListener(new WebSocketListener() {
@Override
public boolean onOpen(WebSocket webSocket) { ... }

@Override
public boolean onClose(WebSocket webSocket, int closeCode, String reason) { ... }

@Override
public boolean onMessage(WebSocket webSocket, String packet) { ... }

@Override
public boolean onMessage(WebSocket webSocket, byte[] packet) { ... }

@Override
public boolean onError(WebSocket webSocket, Throwable error) {
Gdx.app.log(LOG_TAG, "onError: " + error.getCause().getMessage() + "; " + error.getMessage());
return false;
}
});

socket.connect();
}

...
}
< /code>
Server -Seitencode (node.js auf einem digitalocean VPS -Tropfen mit Linux): < /p>
'use strict';

const express = require('express');
const path = require('path');
const https = require('https');
const fs = require('fs');
const WebSocket = require('ws');

const app = express();
app.use(express.static(path.join(__dirname, '/public')));

const server = https.createServer({
key: fs.readFileSync('./privkey.pem'),
cert: fs.readFileSync('./cert.pem')
}, app);
const wss = new WebSocket.Server({server: server});

wss.on('connection', function (ws) { ... });

server.listen(8080, function () {
console.log('Listening on 8080');
});

... // various wss.on* methods
Ich starte den Server mit NPM Start .
Der Website -Code:

const wss = new WebSocket('wss://myDomain:8080');
... // various wss.on* methods

< /code>
In der Browser -Netzwerkkonsole wird eine 101 -Zeile angezeigt und empfängt die Servermeldungen. (Ich sende auch Nachrichten an den Server, aber ich habe diesen Code hier entfernt, weil nicht relevant für diesen Beitrag). Ergebnis:

Danke

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post