Akka HTTP 2.0 for using SSL (HTTPS)

I am trying to add a self-signed certificate to my configuration in order to make my web service for serving content over SSL, but I have no luck.

Here is my current configuration

ssl { jksKeystore = "localhost.p12" password = "changeit" } 

Any ideas on what I can do to deploy an HTTPS server?

My project uses akka 2.0 and scala

+5
source share
1 answer

There are several tests in the akka database that test the functionality of https. They use the predefined http contexts defined in ExampleHttpContexts .

I created a small repo that uses the keys from the akka repository (I hope they will not mind) and will create a minimal https server using a self-signed certificate here . Done as a repo instead of judging so you can just clone it to get started.

Here is the scala code:

 package httpsserver import java.security.{SecureRandom, KeyStore} import javax.net.ssl.{KeyManagerFactory, SSLContext} import akka.actor.ActorSystem import akka.http.scaladsl.{HttpsContext, Http} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.stream.ActorMaterializer object Server extends App { val serverContext: HttpsContext = { val password = "abcdef".toCharArray val context = SSLContext.getInstance("TLS") val ks = KeyStore.getInstance("PKCS12") ks.load(getClass.getClassLoader.getResourceAsStream("keys/server.p12"), password) val keyManagerFactory = KeyManagerFactory.getInstance("SunX509") keyManagerFactory.init(ks, password) context.init(keyManagerFactory.getKeyManagers, null, new SecureRandom) // start up the web server HttpsContext(context) } implicit val system = ActorSystem("server") implicit val materializer = ActorMaterializer() import system._ val route = Route(complete("ok")) Http().bindAndHandle(route, interface = "0.0.0.0", port = 8081, httpsContext = Some(serverContext)) } 
+8
source

Source: https://habr.com/ru/post/1241409/


All Articles