У меня есть сервер WSS с сертификацией.Веб-клиент HTTPS пытается подключиться к моему WSS-серверу, чтобы получать данные через этот сокет.Клиент получает ERR_CERT_COMMON_NAME_INVALID, без исключений в обработчиках netty.Сервер во многом похож на пример nettty WSS с небольшим изменением - я не использую SelfSignedCertificate, так как мне нужно использовать собственную сертификацию.Это код начальной загрузки сервера:
private ServerBootstrap b;
private EventLoopGroup bossGroup;
private EventLoopGroup workerGroup;
final SslContext sslCtx;
public NettyWebSocketServer(ServerProperties srvProp, ConcurrentExecutor executor) {
super(srvProp, executor);
bossGroup = new NioEventLoopGroup(1);
workerGroup = new NioEventLoopGroup(1);
// setExecutorService (workerGroup);
try {
if (srvProp.isSsl()) {
File privateKeyFile = new File("/home/ec2-user/webup/myKey.key");
File certificateFile = new File("/home/ec2-user/webup/myCert.crt");
if (privateKeyFile.exists()) {
System.out.println("private Key File created: " + FileUtil.getFileContent(privateKeyFile));
}
if (certificateFile.exists()) {
System.out.println("certificate File created: " + FileUtil.getFileContent(certificateFile));
}
sslCtx = SslContextBuilder.forServer(certificateFile, privateKeyFile).build();
if (sslCtx != null) {
System.out.println("SSL context created! isServer=" + sslCtx.isServer());
}
} else {
sslCtx = null;
}
b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.handler(new LoggingHandler(LogLevel.INFO))
.childHandler(srvProp.isSsl() ?
new WssServerInitializer(this, sslCtx) : new WebSocketServerInitializer(this))
.option(ChannelOption.TCP_NODELAY, true);
} catch (SSLException e) {
throw new RuntimeException(e);
}
}
@Override
public void start() throws InterruptedException {
try {
Channel ch = b.bind(/*srvProp.getAddress(),*/ srvProp.getPort()).sync().channel();
localAddress = ((InetSocketAddress) ch.localAddress()).getAddress().getHostAddress();
Log.write("Open your web browser and navigate to " +
(getServerProperties().isSsl() ? "https" : "http") + "://" + srvProp.getAddress() + ":" + srvProp.getPort() + '/');
System.out.println("\nNettyWebSocketServer started on " + srvProp.getServerShortInfo() + '\n');
ch.closeFuture().sync();
} finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}