SPARK-3883 SSL support for HttpServer and Akka

 - Introduced SSLOptions object
 - SSLOptions is created by SecurityManager
 - SSLOptions configures Akka and Jetty to use SSL
 - SSLOptions uses property file which is node-local to set SSL settings
 - Provided utility methods to determine the proper Akka protocol for Akka requests and to configure SSL socket factory for URL connections
 - Added tests cases for AkkaUtils, FileServer, SSLOptions and SecurityManager
So backtrack a bit. I think I might be seeing what you mean. There are two different things:

1. Launcher talking to Spark Master

Other than enabling SSL, I don't see why both need to share *the same* configuration. You can still use different trust stores and certs and even certain different configs, as long as things end up matching (e.g. if the Master is set up to validate certs, launchers will need a certificate recognized by the Master when trying to launch jobs - but not necessarily the *same* certificate).

2. Driver talking to Executors

That's what I've been talking about. I think it's not reasonable to require the SSL configuration to be manually distributed before you can launch jobs, for the reasons I already pointed out.

You may go down the path of having different Akka configs to talk to the Master and for the driver <-> executor communication, but that would require multiple actor systems in the same VM and it would probably require changes in other places where it's assumed both use the same actor system.

So, that being said, do you understand what I'm getting at?