web-dev-qa-db-ja.com

HTTPSベースの内部の自己署名SSL証明書の使用APTリポジトリ

私はいくつかのプライベートパッケージで内部使用するためにDebianリポジトリ(実際にはUbuntu)をセットアップしましたが、特定のサーバーがWeb経由で利用できるようにしたいと考えています。 apt-get/aptitudeをHTTPSを使用して接続したいのですが、お金をかけたくないので自己署名証明書を使用しています。

Apt.confのmanページで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")を有効にしましたが、情報はほとんど提供されません。

続行する方法について何か提案はありますか?

10
shevron

うまくいけば、これが他の人を助けるでしょう-私はこれを直接解決することができませんでした。

回避策として、私は今stunnel4を使用してHTTPSリポジトリへのトンネルを作成しています。自己署名証明書と私が持っているクライアント証明書は、stunnel4で非常にうまく機能します。

Localhost:8888で着信接続をリッスンするようにstunnelを設定し、それらを私のリポジトリ(repo.mydomain.com:443)に転送します。 http:// localhost:8888 / でリポジトリを探すように設定しました。

今のところ、これはうまく機能していますが、不必要なハックのようです。

1
shevron

私はクライアント認証を使用せず、HTTPSのみを使用していますが、これを使用して機能させるだけです:

Acquire::https {
        Verify-Peer "false";
        Verify-Host "false";
}

これを/etc/apt/apt.conf.dの下のファイルに置きます。

5
coredump

最近、同様の問題に遭遇しました。 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";
};
5
onemouth

Ca-certificateをインストールして、別の方法で解決しました。

  1. *.crtファイルを `/ usr/local/share/ca-certificates /に
  2. 実行Sudo update-ca-certificates

このソリューションは、少なくともUbuntu 14.04で動作します。

3
ortang

askubunt で、このソリューションのややシンプルなバージョンと、オプションを単一のホストに制限するバージョンを見つけました。

Acquire::https::mirror.ufs.ac.za::Verify-Peer "false";

これでうまくいきました。

ただし、ここの質問者は認証を保持したいと考えていました。私は上記の線に沿っていくつかのことを試しましたが、それを機能させることもできませんでした。一方、私のリポジトリは署名されており、署名キーをインストールしたので、SSL認証はセキュリティにとって重要ではありません。

3
Ted