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

我正尝试使用aleph连接到相互validation的Docker守护进程。 aleph文档显示您可以传递一个netty SSL上下文用于身份validation目的。 看来我正确地创build了SslContext,但所有的请求都closures了

(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连接已closuresclojure.core / ex-info(core.clj:4617)”

有没有人find使用TLS连接的好方法? 我已经尝试https://github.com/aphyr/less-awful-ssl,但是这并不适用于netty。 帮助thnx!

发现我正在创buildSslContext对象错误。 应该是这样的:

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