This commit is contained in:
Julien Viet
2017-04-24 09:36:14 +02:00
parent cdf0edadec
commit 05643b5e5b
6 changed files with 155 additions and 22 deletions

View File

@@ -24,6 +24,7 @@ import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.net.*;
import java.security.cert.CertificateException;
import java.util.Arrays;
/**
* Created by tim on 19/01/15.
@@ -598,4 +599,45 @@ public class NetExamples {
.requestHandler(req -> req.response().end("Hello!"))
.listen(8080);
}
public void configureSNIServer(Vertx vertx) {
JksOptions keyCertOptions = new JksOptions().setPath("keystore.jks").setPassword("wibble");
NetServer netServer = vertx.createNetServer(new NetServerOptions()
.setKeyStoreOptions(keyCertOptions)
.setSsl(true)
.setSni(true)
);
}
public void configureSNIServerWithPems(Vertx vertx) {
PemKeyCertOptions keyCertOptions = new PemKeyCertOptions()
.setKeyPaths(Arrays.asList("default-key.pem", "host1-key.pem", "etc..."))
.setCertPaths(Arrays.asList("default-cert.pem", "host2-key.pem", "etc...")
);
NetServer netServer = vertx.createNetServer(new NetServerOptions()
.setPemKeyCertOptions(keyCertOptions)
.setSsl(true)
.setSni(true)
);
}
public void useSNIInClient(Vertx vertx, JksOptions trustOptions) {
NetClient client = vertx.createNetClient(new NetClientOptions()
.setTrustStoreOptions(trustOptions)
.setSsl(true)
);
// Connect to 'localhost' and present 'host1' server name
client.connect(1234, "localhost", "host1", res -> {
if (res.succeeded()) {
System.out.println("Connected!");
NetSocket socket = res.result();
} else {
System.out.println("Failed to connect: " + res.cause().getMessage());
}
});
}
}