Ubuntu

為基於 HTTPS 的內部 APT 儲存庫使用自簽名 SSL 證書

  • October 13, 2021

我已經建立了一個 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";
};

引用自:https://serverfault.com/questions/340887