in foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java [129:186]
private static TCPSSLOptions buildTCPSSLOptions(SSLOption sslOption, SSLCustom sslCustom,
TCPSSLOptions tcpClientOptions) {
tcpClientOptions.setSsl(true);
if (sslOption.getEngine().equalsIgnoreCase("openssl")) {
tcpClientOptions.setSslEngineOptions(new OpenSSLEngineOptions());
}
String fullKeyStore = sslCustom.getFullPath(sslOption.getKeyStore());
if (isFileExists(fullKeyStore)) {
if (STORE_PKCS12.equalsIgnoreCase(sslOption.getKeyStoreType())) {
PfxOptions keyPfxOptions = new PfxOptions();
keyPfxOptions.setPath(fullKeyStore);
keyPfxOptions.setPassword(new String(sslCustom.decode(sslOption.getKeyStoreValue().toCharArray())));
tcpClientOptions.setKeyCertOptions(keyPfxOptions);
} else if (STORE_JKS.equalsIgnoreCase(sslOption.getKeyStoreType())) {
JksOptions keyJksOptions = new JksOptions();
keyJksOptions.setPath(fullKeyStore);
keyJksOptions.setPassword(new String(sslCustom.decode(sslOption.getKeyStoreValue().toCharArray())));
tcpClientOptions.setKeyCertOptions(keyJksOptions);
} else {
throw new IllegalArgumentException("invalid key store type.");
}
} else {
LOGGER.warn("keyStore [" + fullKeyStore + "] file not exist, please check!");
}
String fullTrustStore = sslCustom.getFullPath(sslOption.getTrustStore());
if (isFileExists(fullTrustStore)) {
if (STORE_PKCS12.equalsIgnoreCase(sslOption.getTrustStoreType())) {
PfxOptions trustPfxOptions = new PfxOptions();
trustPfxOptions.setPath(fullTrustStore);
trustPfxOptions
.setPassword(new String(sslCustom.decode(sslOption.getTrustStoreValue().toCharArray())));
tcpClientOptions.setTrustOptions(trustPfxOptions);
} else if (STORE_JKS.equalsIgnoreCase(sslOption.getTrustStoreType())) {
JksOptions trustJksOptions = new JksOptions();
trustJksOptions.setPath(fullTrustStore);
trustJksOptions
.setPassword(new String(sslCustom.decode(sslOption.getTrustStoreValue().toCharArray())));
tcpClientOptions.setTrustOptions(trustJksOptions);
} else {
throw new IllegalArgumentException("invalid trust store type.");
}
} else {
LOGGER.warn("trustStore [" + fullTrustStore + "] file not exist, please check!");
}
tcpClientOptions
.setEnabledSecureTransportProtocols(new HashSet<>(Arrays.asList(sslOption.getProtocols().split(","))));
for (String cipher : SSLManager.getEnabledCiphers(sslOption)) {
tcpClientOptions.addEnabledCipherSuite(cipher);
}
if (isFileExists(sslCustom.getFullPath(sslOption.getCrl()))) {
tcpClientOptions.addCrlPath(sslCustom.getFullPath(sslOption.getCrl()));
}
return tcpClientOptions;
}