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