gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:19 25 4
gpt4 key购买 nike

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

(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 不太适用。帮助谢谢!

最佳答案

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

(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))

关于ssl - Clojure:使用 aleph 连接到 TLS 启用 docker 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35816207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com