我已经成立了一个令人满意的私人作曲家包经理。 Satis运行在“packages.asc.company”上,我通过apache2 http基本身份验证保护站点,并可以通过输入http basic auth凭证在浏览器中打开它。
现在我的问题:如何在运行时以最佳和最安全的方式传递作曲家凭据以访问满意的网站。 “作曲家更新”?
目前我只在apache .htpasswd文件中注册了一个密码用户,并且需要在某处传递其凭据才能从composer连接到satisf。
我需要连接两种情况:
1)从开发期间的项目
2)在持续整合过程中从詹金斯出发。
3)编辑:SSL
我正在尝试使用openssl来保护登录时的凭据。在我运行apache的linux上,我创建了一个私钥和一个.crt文件(参见:OneHotEncoder example in the docs。在我的linux上,我现在可以使用https打开满意的包页面,我甚至将http重定向到https,所有工作(我使用我自己的证书生成openssl,因为它是一个内部应用程序,我不需要一个可信任的ca)。
现在,当我从我的Linux vm(这里是我编码)切换到我的Windows时,我尝试运行composer update,我收到以下错误消息: (主机文件配置正确)
[作曲\下载\ TransportException] 无法下载“Apache SSL”文件:SSL操作失败,代码为1. OpenSSL错误消息: 错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 无法启用加密 无法打开流:操作失败
我错过了什么?我对ssl很新,但现在读了一整天关于它的信息,无法让它工作。
从https://packages.asc.company/packages.json,我有这些信息,但不知道如何使用它。
{
"repositories": [
{
"type": "composer",
"url": "https://example.org",
"options": {
"ssl": {
"local_cert": "/home/composer/.ssl/composer.pem"
}
}
}
]
}
问候。
答案 0 :(得分:1)
There is a documentation page for this.
Composer可以将用户名添加到Satis URL中。适合我,我只想绕过本地网络中无用的默认密码服务器。这是一个只读帐户,我用它。
此外:公司中的每个开发人员都在存储库服务器上拥有一个帐户,并且在保护下载的ZIP文件方面没有多大用处,而且安全性更高。 Composer本身目前不支持任何代码签名方法或哈希比较,因此无法知道某个包是否已被篡改存储位置或传输过程中。
根据文档,不在URL中提供凭据会使Composer要求它们,或者您可以将它们添加到auth.json
。另一方面:将明文密码保存在专用文件中听起来并不是最好的主意,而且不使用HTTPS传输它们就更糟了。
您必须定义您想要的安全类型。您想要防范的目标或威胁情景是什么?