【问题标题】:Satis http basic auth - pass credentials满足 http 基本身份验证 - 传递凭据
【发布时间】:2015-12-11 05:14:17
【问题描述】:

我已经设置了满意的私人作曲家数据包管理器。 Satis 在“packages.asc.company”上运行,我通过 apache2 http 基本身份验证保护了该站点,并且可以通过输入 http 基本身份验证凭据在浏览器中打开它。

现在我的问题是:如何在运行时以最佳和最安全的方式向作曲家传递凭据以访问 satis 站点,例如“作曲家更新”?

目前我在 apache .htpasswd 文件中只注册了一个用户,并且需要将其凭据传递到某个地方才能从 composer 连接到 satis。

有两种情况我需要连接:

1) 在开发过程中来自项目

2) 在持续集成过程中来自 jenkins。


3) 编辑:SSL

我现在正在尝试使用 openssl 来保护登录时的凭据。在运行 apache 的 linux 上,我创建了一个私钥和一个 .crt 文件(请参阅:Apache SSL。在我的 linux 上,我可以现在用https打开satis包页面,我什至将http重定向到https,一切正常(我使用我自己的openssl证书生成,因为它是一个内部应用程序,我不需要受信任的ca)。

现在,当我从我的 Linux 虚拟机(这里我正在编码)切换到我的 Windows 并尝试运行 composer update 时,我收到以下错误消息: (hosts文件配置正确)

[作曲家\下载器\TransportException] 无法下载“https://packages.asc.company/packages.json”文件:SSL 操作失败,代码为 1。OpenSSL 错误消息: 错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 无法启用加密 无法打开流:操作失败

我错过了什么?我对 ssl 还很陌生,但现在阅读了一整天有关它的信息,但无法让它工作。

来自getcomposer satis site,我有这个信息,但不知道如何使用。

{
 "repositories": [
    {
        "type": "composer",
        "url": "https://example.org",
        "options": {
            "ssl": {
                "local_cert": "/home/composer/.ssl/composer.pem"
            }
        }
    }
 ]
}

问候。

【问题讨论】:

  • 从 CLI 使用 Composer 时,您是否找到任何解决 HTTPS 证书问题的方法?我也可以很好地打开浏览器 UI(使用 HTTPS 和基本身份验证),但 composer 命令失败并显示您在问题中粘贴的错误。
  • 你好。我解决了我的问题:我使用了 Let's Encrypt 和 Nginx,但使用了 cert.pem 文件,而应该使用 fullchain.pem 文件。

标签: php ssl openssl apache2 satis


【解决方案1】:

There is a documentation page for this.

Composer 会在 Satis URL 中添加用户名。对我有用,我只是想绕过本地网络中无用的默认密码服务器。有一个只读帐户,我用过。

另外:公司中的每个开发人员在存储库服务器上都有一个帐户,并且在保护下载的 ZIP 文件时没有太多用处,而且更加安全。 Composer 本身目前不支持任何代码签名方法或哈希比较,因此无法知道包是否在存储位置或传输过程中被篡改。

根据文档,不在 URL 中提供凭据将使 Composer 要求提供凭据,或者您可以将它们添加到 auth.json。另一方面:将明文密码保存在专用文件中听起来不是最好的主意,而且不使用 HTTPS 传输密码更糟糕。

你必须定义你想要什么样的安全性。您要防范的目标或威胁场景是什么?

【讨论】:

  • 我已经实现了 auth.json 方法——我认为剩下的问题是这些密码是通过 http 传输的——但是应该可以将 https 添加到我的 satis 数据包管理器中。对我来说,这样就足够安全了。当涉及到 jenkins 构建服务器时,我遇到了一个小问题,因为这些 auth.json 文件在 gitignore 列表中,并且构建过程是动态的。因此,我在运行 jenkins 的 linux 上的 composer home ev (/usr/local/bin) 的路径中添加了一个“auth.json”文件——应该这样做,不是吗? (无法测试它,因为 ci 没有完全设置)
  • 另外:在我的satis存储库上使用https需要采取哪些步骤?我已阅读 getcomposer.org 的安全部分,但不太了解。我从来没有在网站上集成过 ssl,就我而言,我认为自创证书就足够了。
  • 这是 web 主机的简单 HTTPS 配置,与 Composer 或 Satis 无关,即您托管的是静态文件,需要提供 URL 才能访问它们。
  • 好的,因为在 getcomposer 中有一个额外的 https 部分与 satis 相关。我试图让它工作,如果我无法弄清楚,我将不得不问更详细。谢谢
  • 我已经编辑了我的问题,如果你能看一下它会很高兴(第 3 点)。问候。
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
相关资源
最近更新 更多