通过 HTTPS 实现匿名拉取和验证用户推送

通过 HTTPS 实现匿名拉取和验证用户推送

基本上,我如何在 Mercurial Repository 中执行此操作?

目前,我已将 Apache 中的位置配置为需要 SSL、使用基本身份验证和需要有效用户。这有点多余,因为我想允许匿名拉取,只需要对推送者进行基本身份验证 — 目前,只需在 Web 浏览器中查看存储库,用户/密码即可。我希望始终需要 SSL,并且不想两次托管同一个存储库(为仅拉取设置不同的位置,为经过验证的推送设置另一个位置)。

答案1

切斯·马丁有一篇很好的博客,其中详细介绍了他如何根据您所问的问题设置 Mercurial。

<LimitExcept GET>
  require valid-user
</LimitExcept>

Apache 配置中的这个片段是允许匿名拉取(或通过 hgweb 发布时浏览)所需的部分内容,但仍需要传递才能推送。

答案2

你要找的可能是限制除外Apache 的指令。例如:

<LimitExcept GET>
  Require valid-user
</LimitExcept>

因此,除了 GET 请求之外,其他任何请求都需要用户/密码。但我不了解 Mercurial,也不知道该怎么hg push做。如果是 POST 请求,那就没问题,但可能还需要 POST 才能拉取。

答案3

通过要求匿名拉取数据时使用 SSL,您的问题变得更加棘手,我不知道您这样做的目的是什么。如果任何人都可以在没有身份验证的情况下拉取数据,那么任何人只要询问就可以看到所有数据,这使得嗅探线路完全多余,因此加密数据毫无意义。

我强烈建议采用更简单的方式将匿名分发放在 http 上,并保存 https 以进行推送。

相关内容