Ubuntu
為基於 HTTPS 的內部 APT 儲存庫使用自簽名 SSL 證書
我已經建立了一個 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";
我也使用客戶端證書,但這似乎不是問題,因為當我將 Verify-Peer 設置為“false”(上面評論)時,一切正常。
使用相同的 CA 證書、客戶端證書和密鑰適用於 curl。
我啟用了 apt 調試(Debug::Acquire::https “true”),但它提供的資訊很少。
關於如何進行的任何建議?
我不使用客戶端身份驗證,只使用 HTTPS,但我只能使用它來工作:
Acquire::https { Verify-Peer "false"; Verify-Host "false"; }
我把它放到文件中,
/etc/apt/apt.conf.d/90sslverify
.
最近,我遇到了類似的問題。我通過添加
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"; };