首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用http4s从http更改为https

使用http4s从http更改为https
EN

Stack Overflow用户
提问于 2020-04-17 18:14:43
回答 1查看 672关注 0票数 2

是否有任何方法使用库http4s将http服务器更改为https?(https://http4s.org/)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-10 16:42:21

我发现自己也面临着同样的问题,但我设法解决了这个问题,问题是:

  1. 您需要寻找构建服务器的时刻,大概是使用BlazeServerBuilder。
  2. BlazeServerBuilder有一个方法"withSslContext(sslContext: SSLContext)“来启用SSL。因此,您所需要做的就是创建一个SSLContext对象并将其传递给服务器构建器。

记住,在使用.之前,您可能必须使用它的keytool实用程序将您的SSL证书存储在keystore中。

SSL上下文和SSL证书

如何使用SSL证书创建SSL上下文是另一个问题,但这里有一个有趣的文章,介绍从让我们在Java应用程序中加密证书-技术博客应用程序获得免费证书、将其存储在密钥存储库中并使用它的过程。

下面是我在Scala中创建SSLContext时使用的代码:

代码语言:javascript
复制
val keyStorePassword: String   = your_keystore_password
val keyManagerPassword: String = your_certificate_password
val keyStorePath: String       = your_keystore_location

val keyStore = KeyStore.getInstance(KeyStore.getDefaultType)

val in = new FileInputStream(keyStorePath)
keyStore.load(in, keyStorePassword.toCharArray)

val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm)
keyManagerFactory.init(keyStore, keyStorePassword.toCharArray)

val trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm)
trustManagerFactory.init(keyStore)

val sslContext = SSLContext.getInstance("TLS")
sslContext.init(keyManagerFactory.getKeyManagers, trustManagerFactory.getTrustManagers, new SecureRandom())
sslContext
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61278058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档