【发布时间】:2018-02-04 01:35:04
【问题描述】:
我正在尝试处理Enlive tutorial。
当我在克隆的 repo 中尝试 lein deps 或 lein run 时,我遇到了这个问题:
试图在没有 TLS 的情况下使用不安全的 HTTP 存储库。
【问题讨论】:
我正在尝试处理Enlive tutorial。
当我在克隆的 repo 中尝试 lein deps 或 lein run 时,我遇到了这个问题:
试图在没有 TLS 的情况下使用不安全的 HTTP 存储库。
【问题讨论】:
Leiningen 的最新版本已禁用不安全的依赖项下载。来自FAQ:
问:我收到了
Tried to use insecure HTTP repository without TLS,那是什么意思?答:这意味着您的项目已配置为从不使用 TLS 加密的存储库下载依赖项。这是非常不安全的,并且会使您受到简单执行的中间人攻击。在极少数情况下,您不关心运行项目的机器的安全性,或者可以确保唯一的 http 流量通过受信任的网络发出,您可以通过将其放在您的 @ 中重新启用对不安全存储库的支持987654324@文件:
;; never do this
(require 'cemerick.pomegranate.aether)
(cemerick.pomegranate.aether/register-wagon-factory!
"http" #(org.apache.maven.wagon.providers.http.HttpWagon.))
您也可能有一个依赖项,其中包含对不安全存储库的引用以检索其自己的依赖项。如果发生这种情况,强烈建议添加
:exclusion并报告执行此操作的依赖项的错误。
覆盖 project.clj 中不安全的 HTTP 存储库 URL:
如果我覆盖 enlive-tutorial/project.clj 中的以下存储库 URL,我可以克隆 enlive-tutorial 并成功执行 lein deps,只需将协议更改为 HTTPS:
:mirrors {"clojure" {:url "https://build.clojure.org/releases/"}
"clojure-snapshots" {:url "https://build.clojure.org/snapshots/"}}
看来Moustache 是传递依赖项,它试图通过 HTTP 拉取其依赖项。
【讨论】: