-
Notifications
You must be signed in to change notification settings - Fork 421
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding more options to the SSL configuration #2039
Comments
We need to think of a way to do this in such a fashion as to minimize the imprint of the JVM in the public API, for Scala Native, etc. |
Could also use this feature. My company has implemented a custom KeyStore to be update-aware of short-term credentials injected into K8S pods. No telling what else they are doing under the hood but we're supposed to use it to initialize a KeyManagerFactory for SSLContext initialization. We'd like zio-http instead of our current akka-http but this is a showstopper short of forking zio-http for an in-house workaround. |
@LannyRipple How would you like to specify this? |
/bounty $250 |
💎 $250 bounty • ZIOSteps to solve:
Thank you for contributing to zio/zio-http! Add a bounty • Share on socials
|
I'm a bit at a loss there. We aren't using Scala Native and such so for us it's just adding to ClientSSLConfig and modifying ClientSSLConverter to do the needful and not worrying that our zio-http would be leaking JVM types. Sadly there's no way my team will agree to us maintaining a fork (I don't blame them). Looking at my company's example code (SSL/PKI newbie here) it looks like we need keyStoreInstanceName: String
keyStoreInputStreamtoLoad: => InputStream
// keyManagerFactoryAlgorithm -- going with default for now
// sslContextInstanceVersion: String -- going with latest. suspect this doesn't change much Looks like the exact same pattern for TrustStoreFactory which you would want for mTLS setup. The following certainly leaks JVM intent but I think stays away from JVM specifics until you would be down at the Netty/Jetty/Other-JVM-Lib level. ClientSSLConfig.FromJavaxNetSsl.builder()
.keyStoreFactoryInfo(keyStoreInstanceName, keyStoreInputStreamThunk)
.trustStoreFactoryInfo(trustStoreInstanceName, trustStoreInputStreamThunk)
.build() Or maybe the InputStreams are just the paths and Netty handles the reads at SslContext creation. |
* Provides ClientSSLConfig FromJavaxNetSsl to allow configuring client SSLContext using a javax.net.ssl.KeyManagerFactory and/or a javax.net.ssl.TrustManagerFactory. * Only partially addresses zio#2039.
/attempt #2039 |
@asr2003: We appreciate your enthusiasm but since you already have 3 active bounty attempts, we're going to keep this open for other contributors to attempt. 🫡 |
💡 @varshith257 submitted a pull request that claims the bounty. You can visit your bounty board to reward. |
🎉🎈 @varshith257 has been awarded $250! 🎈🎊 |
Hi, I see the requirement says: for both client and server contexts Using akka http we could create the
|
Is your feature request related to a problem? Please describe.
Hi all, I would need to have more parameterization of the SSL context than it is currently available. Basically I would need the server to also use a trustStore, to enable/disable mutual authentication between client and server, and to define other additional options, including setting a custom cipher suite.
Describe the solution you'd like
The solution I would need should allow the following options to be added to the ssl configuration:
Describe alternatives you've considered
none
Additional context
Thank you for the support
The text was updated successfully, but these errors were encountered: