she*_*ron 10 ubuntu debian repository ssl-certificate apt
我已经建立了一个 Debian 存储库(实际上是 Ubuntu),供内部使用一些私有软件包,现在希望通过网络将其提供给某些特定服务器。我希望 apt-get / aptitude 使用 HTTPS 连接到它,因为我不想花任何钱使用自签名证书。
我已经尝试按照 apt.conf 手册页指向 apt-get 使用我自己的根 CA 证书来验证主机,但它似乎不起作用。
我的 apt.conf 文件如下所示:
#Acquire::https::repo.mydomain.com::Verify-Peer "false";
Acquire::https::repo.mydomain.com::CaInfo "/etc/apt/certs/my-cacert.pem";
Acquire::https::repo.mydomain.com::SslCert "/etc/apt/certs/my-cert.pem";
Acquire::https::repo.mydomain.com::SslKey "/etc/apt/certs/my-key.pem";
Run Code Online (Sandbox Code Playgroud)
我也使用客户端证书,但这似乎不是问题,因为当我将 Verify-Peer 设置为“false”(如上所述)时,一切正常。
使用相同的 CA 证书,客户端证书和密钥可以很好地与 curl 配合使用。
我启用了 apt 调试(Debug::Acquire::https "true")但它提供的信息很少。
有关如何进行的任何建议?
我不使用客户端身份验证,只使用 HTTPS,但我只使用它来工作:
Acquire::https {
Verify-Peer "false";
Verify-Host "false";
}
Run Code Online (Sandbox Code Playgroud)
我把它放在/etc/apt/apt.conf.d
.
小智 6
最近,我遇到了类似的问题。我通过添加SslForceVersion
选项解决了它。
我的配置是这样的:
Acquire::https::test.com {
Verify-Peer "true";
Verify-Host "true";
CaInfo "/tmp/ca.crt";
SslCert "/tmp/client.crt";
SslKey "/tmp/client.key";
SslForceVersion "SSLv3";
};
Run Code Online (Sandbox Code Playgroud)
我用另一种方式解决了这个问题,即安装 ca 证书。
*.crt
文件复制到/usr/local/share/ca-certificates/
sudo update-ca-certificates
适用于 Ubuntu 14.04。
希望这对其他人有帮助 - 我无法直接解决这个问题。
作为解决方法,我现在使用 stunnel4 创建到我的 HTTPS 存储库的隧道。我的自签名证书和客户端证书与 stunnel4 配合得很好。
我已经设置了 stunnel 来侦听 localhost:8888 上的传入连接,并将它们定向到我的存储库 (repo.mydomain.com:443)。我已经设置 apt 在http://localhost:8888/查找我的存储库。
到目前为止,这一直运作良好,尽管这似乎是一个不必要的黑客行为。
归档时间: |
|
查看次数: |
34076 次 |
最近记录: |