|
@@ -111,8 +111,11 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
Path testClientStore = getDataPath("/org/elasticsearch/xpack/security/transport/ssl/certs/simple/testclient.jks");
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.truststore.secure_password", "testnode");
|
|
|
+ secureSettings.setString("xpack.security.transport.ssl.keystore.secure_password", "testnode");
|
|
|
secureSettings.setString("transport.profiles.foo.xpack.security.ssl.truststore.secure_password", "testclient");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
+ .put("xpack.security.transport.ssl.keystore.path", testnodeStore)
|
|
|
.put("xpack.security.transport.ssl.truststore.path", testnodeStore)
|
|
|
.put("xpack.security.transport.ssl.truststore.type", testnodeStoreType)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -145,6 +148,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -170,6 +174,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
secureSettings.setString("xpack.security.transport.ssl.keystore.secure_password", "testnode");
|
|
|
secureSettings.setString("xpack.security.transport.ssl.keystore.secure_key_password", "testnode1");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.keystore.path", differentPasswordsStore)
|
|
|
.setSecureSettings(secureSettings)
|
|
|
.build();
|
|
@@ -204,6 +209,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -223,13 +229,14 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
|
|
|
public void testThatCreateSSLEngineWithOnlyTruststoreWorks() throws Exception {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
- secureSettings.setString("xpack.security.transport.ssl.truststore.secure_password", "testclient");
|
|
|
+ secureSettings.setString("xpack.http.ssl.truststore.secure_password", "testclient");
|
|
|
Settings settings = Settings.builder()
|
|
|
- .put("xpack.security.transport.ssl.truststore.path", testclientStore)
|
|
|
+ .put("xpack.http.ssl.enabled", true)
|
|
|
+ .put("xpack.http.ssl.truststore.path", testclientStore)
|
|
|
.setSecureSettings(secureSettings)
|
|
|
.build();
|
|
|
SSLService sslService = new SSLService(settings, env);
|
|
|
- SSLConfiguration configuration = sslService.getSSLConfiguration("xpack.security.transport.ssl");
|
|
|
+ SSLConfiguration configuration = sslService.getSSLConfiguration("xpack.security.http.ssl");
|
|
|
SSLEngine sslEngine = sslService.createSSLEngine(configuration, null, -1);
|
|
|
assertThat(sslEngine, notNullValue());
|
|
|
}
|
|
@@ -240,6 +247,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.keystore.secure_password", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.keystore.path", testnodeStore)
|
|
|
.put("xpack.security.transport.ssl.keystore.type", testnodeStoreType)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -252,25 +260,27 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
public void testValidForServer() throws Exception {
|
|
|
assumeFalse("Can't run in a FIPS JVM, JKS keystores can't be used", inFipsJvm());
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
- secureSettings.setString("xpack.security.transport.ssl.truststore.secure_password", "testnode");
|
|
|
+ secureSettings.setString("xpack.http.ssl.truststore.secure_password", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
- .put("xpack.security.transport.ssl.truststore.path", testnodeStore)
|
|
|
- .put("xpack.security.transport.ssl.truststore.type", testnodeStoreType)
|
|
|
+ .put("xpack.http.ssl.truststore.path", testnodeStore)
|
|
|
+ .put("xpack.http.ssl.truststore.type", testnodeStoreType)
|
|
|
.setSecureSettings(secureSettings)
|
|
|
.build();
|
|
|
SSLService sslService = new SSLService(settings, env);
|
|
|
- assertFalse(sslService.isConfigurationValidForServerUsage(sslService.getSSLConfiguration("xpack.security.transport.ssl")));
|
|
|
+ // Technically, we don't care whether xpack.http.ssl is valid for server - it's a client context, but we validate both of the
|
|
|
+ // server contexts (http & transport) during construction, so this is the only way to make a non-server-valid context.
|
|
|
+ assertFalse(sslService.isConfigurationValidForServerUsage(sslService.getSSLConfiguration("xpack.http.ssl")));
|
|
|
|
|
|
- secureSettings.setString("xpack.security.transport.ssl.keystore.secure_password", "testnode");
|
|
|
+ secureSettings.setString("xpack.http.ssl.keystore.secure_password", "testnode");
|
|
|
settings = Settings.builder()
|
|
|
- .put("xpack.security.transport.ssl.truststore.path", testnodeStore)
|
|
|
- .put("xpack.security.transport.ssl.truststore.type", testnodeStoreType)
|
|
|
+ .put("xpack.http.ssl.truststore.path", testnodeStore)
|
|
|
+ .put("xpack.http.ssl.truststore.type", testnodeStoreType)
|
|
|
.setSecureSettings(secureSettings)
|
|
|
- .put("xpack.security.transport.ssl.keystore.path", testnodeStore)
|
|
|
- .put("xpack.security.transport.ssl.keystore.type", testnodeStoreType)
|
|
|
+ .put("xpack.http.ssl.keystore.path", testnodeStore)
|
|
|
+ .put("xpack.http.ssl.keystore.type", testnodeStoreType)
|
|
|
.build();
|
|
|
sslService = new SSLService(settings, env);
|
|
|
- assertTrue(sslService.isConfigurationValidForServerUsage(sslService.getSSLConfiguration("xpack.security.transport.ssl")));
|
|
|
+ assertTrue(sslService.isConfigurationValidForServerUsage(sslService.getSSLConfiguration("xpack.http.ssl")));
|
|
|
}
|
|
|
|
|
|
public void testGetVerificationMode() throws Exception {
|
|
@@ -280,6 +290,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
is(XPackSettings.VERIFICATION_MODE_DEFAULT));
|
|
|
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", false)
|
|
|
.put("xpack.security.transport.ssl.verification_mode", "certificate")
|
|
|
.put("transport.profiles.foo.xpack.security.ssl.verification_mode", "full")
|
|
|
.build();
|
|
@@ -294,6 +305,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
assertTrue(sslService.getSSLConfiguration("xpack.security.transport.ssl").sslClientAuth().enabled());
|
|
|
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", false)
|
|
|
.put("xpack.security.transport.ssl.client_authentication", "optional")
|
|
|
.put("transport.profiles.foo.port", "9400-9410")
|
|
|
.build();
|
|
@@ -303,9 +315,18 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
public void testThatHttpClientAuthDefaultsToNone() throws Exception {
|
|
|
+ MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
+ secureSettings.setString("xpack.security.transport.ssl.keystore.secure_password", "testnode");
|
|
|
+ secureSettings.setString("xpack.security.http.ssl.keystore.secure_password", "testnode");
|
|
|
final Settings globalSettings = Settings.builder()
|
|
|
.put("xpack.security.http.ssl.enabled", true)
|
|
|
+ .put("xpack.security.http.ssl.keystore.path", testnodeStore)
|
|
|
+ .put("xpack.security.http.ssl.keystore.type", testnodeStoreType)
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.client_authentication", SSLClientAuth.OPTIONAL.name())
|
|
|
+ .put("xpack.security.transport.ssl.keystore.path", testnodeStore)
|
|
|
+ .put("xpack.security.transport.ssl.keystore.type", testnodeStoreType)
|
|
|
+ .setSecureSettings(secureSettings)
|
|
|
.build();
|
|
|
final SSLService sslService = new SSLService(globalSettings, env);
|
|
|
|
|
@@ -350,6 +371,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -383,6 +405,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -398,6 +421,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -423,6 +447,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
secureSettings.setString("xpack.security.transport.ssl.secure_key_passphrase", "testnode");
|
|
|
Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", true)
|
|
|
.put("xpack.security.transport.ssl.certificate", testnodeCert)
|
|
|
.put("xpack.security.transport.ssl.key", testnodeKey)
|
|
|
.setSecureSettings(secureSettings)
|
|
@@ -514,6 +539,9 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
final MockSecureSettings secureSettings = new MockSecureSettings();
|
|
|
final Settings.Builder builder = Settings.builder();
|
|
|
for (String prefix : contextNames) {
|
|
|
+ if (prefix.startsWith("xpack.security.transport") || prefix.startsWith("xpack.security.http")) {
|
|
|
+ builder.put(prefix + ".enabled", true);
|
|
|
+ }
|
|
|
secureSettings.setString(prefix + ".keystore.secure_password", "testnode");
|
|
|
builder.put(prefix + ".keystore.path", testnodeStore)
|
|
|
.putList(prefix + ".cipher_suites", cipher.next());
|
|
@@ -548,6 +576,7 @@ public class SSLServiceTests extends ESTestCase {
|
|
|
secureSettings.setString("xpack.http.ssl.keystore.secure_password", "testnode");
|
|
|
|
|
|
final Settings settings = Settings.builder()
|
|
|
+ .put("xpack.security.transport.ssl.enabled", randomBoolean())
|
|
|
.put("xpack.security.transport.ssl.keystore.path", jksPath)
|
|
|
.put("xpack.security.transport.ssl.truststore.path", jksPath)
|
|
|
.put("xpack.http.ssl.keystore.path", p12Path)
|