2

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

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

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

有两种情况我需要连接:

1)从开发过程中的项目

2)在持续集成过程中来自詹金斯。


3)编辑:SSL

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

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

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

我错过了什么?我对 ssl 很陌生,但是现在阅读了一整天有关它的信息并且无法使其正常工作。

getcomposer satis site,我有这些信息,但不知道如何使用它。

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

问候。

4

1 回答 1

1

有一个文档页面。

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

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

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

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

于 2015-12-08T23:53:18.177 回答