php - Satis http basic auth - pass credentials

标签 php ssl openssl apache2 satis

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

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

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

有两种情况需要连接:

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

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


3) Edit: SSL

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

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

[Composer\Downloader\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"
            }
        }
    }
 ]
}

问候。

最佳答案

There is a documentation page for this.

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

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

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

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

关于php - Satis http basic auth - pass credentials,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167107/

相关文章:

php - 如何从一组变量中分配第一个非假变量

javascript - 如何让 slider 在网站上动态添加或减去元素?

javascript - 显示一条消息直到 php 脚本完成

php - 在 Cocoa 中加密数据,在 PHP 中解码

php - 在 laravel 中查找具有 hasmany 关系的结果

java - 使用 https 的 Web 服务身份验证给出错误

ssl - Cassandra:如何设置节点到节点加密?

javascript - node.js 中的 SSL 证书错误

c# - 如何在 C# 中针对 MySQL 打开 openssl passwd -1

linux - 使用 bash shell 脚本加密文件