netty SslHandler和dotnetty TlsHandler不适配
Closed this issue · 1 comments
这是netty
private ChannelHandler createSslHandler() {
try {
InputStream jksInputStream = FileUtil.getInputStream("classpath:/test.jks");
SSLContext serverContext = SSLContext.getInstance("TLS");
final KeyStore ks = KeyStore.getInstance("JKS");
ks.load(jksInputStream, "123456".toCharArray());
final KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, "123456".toCharArray());
TrustManager[] trustManagers = null;
serverContext.init(kmf.getKeyManagers(), trustManagers, null);
SSLEngine sslEngine = serverContext.createSSLEngine();
sslEngine.setUseClientMode(false);
sslEngine.setNeedClientAuth(false);
return new SslHandler(sslEngine);
} catch (Exception e) {
log.error("create SSL handler failed", e);
e.printStackTrace();
}
return null;
}
public IChannelHandler createSslHandler() {
// return TlsHandler.Server(new X509Certificate2("E:\game\test\ConsoleApp4\proxy\Ztest\yang.pfx", "123456"));
byte[] readAllBytes = File.ReadAllBytes("E:\game\test\ConsoleApp4\proxy\Ztest\yang.pfx");
var cert = new X509Certificate2("E:\game\test\ConsoleApp4\proxy\Ztest\yang.pfx", "123456");
var targetHost = cert.GetNameInfo(X509NameType.DnsFromAlternativeName, false);
// TlsHandler tlsHandler = new TlsHandler(new ClientTlsSettings(targetHost, new List() { cert }));
// TlsHandler.Client()
TlsHandler tlsHandler = new TlsHandler(
stream => {
return
new SslStream(stream, true,
(sender, certificate, chain, errors) => { return true; });
},
new ClientTlsSettings(targetHost));
return new TlsHandler(stream => new SslStream(stream, true,
(sender, certificate, chain, errors) => {
Console.WriteLine(sender);
return true;
}),
new ClientTlsSettings(targetHost));
}
上面代码调试不通
能否给一个netty SslHandler和dotnetty TlsHandler 调试成功的例子
已解决,版本问题