首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure:使用aleph连接到TLS启用docker守护进程

Clojure:使用aleph连接到TLS启用docker守护进程
EN

Stack Overflow用户
提问于 2016-03-05 23:52:25
回答 1查看 266关注 0票数 1

我正在尝试使用aleph连接到一个相互认证的Docker守护进程。aleph文档显示,您可以传入netty SSL上下文进行身份验证。看起来我正确地创建了SslContext,但所有请求都已关闭

代码语言:javascript
复制
(require '[aleph.http :as http])
(import '[io.netty.handler.ssl SslContext])
(import '[io.netty.handler.ssl SslProvider]) 
(import '[io.netty.handler.ssl SslContextBuilder])

(def ctx
  (doto (SslContextBuilder/forClient)
        (.keyManager (java.io.File. "certs/cert.pem") 
                     (java.io.File. "certs/client.pkcs8"))
        (.trustManager (java.io.File. "certs/ca.pem"))
        (.build)))

(let [pool (http/connection-pool {:connection-options {:ssl-context ctx}})]
  @(http/get (str "http://" host ":" port "/info") {:pool pool}))

结果为:"ExceptionInfo连接已关闭clojure.core/ex-info (core.clj:4617)“

有没有人找到了使用TLS连接的好方法?我尝试过https://github.com/aphyr/less-awful-ssl,但这对netty不太起作用。帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2016-03-06 15:11:20

发现我创建的SslContext对象是错误的。应该是这样的:

代码语言:javascript
复制
(def ctx
 (.build
  (.keyManager
   (.trustManager (SslContextBuilder/forClient) ca)
   cert client-key)))

;; pass in ssl-context via pool
(let [pool (http/connection-pool {:connection-options {:ssl-context ctx}})]
  (-> @(http/get (str "https://" host ":" port "/info") {:pool pool})
      :body
      bs/to-string))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35816207

复制
相关文章

相似问题

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