HTTPS tabanlı dahili APT deposu için kendinden imzalı bir SSL sertifikası kullanma


10

Bazı özel paketlerle dahili kullanım için bir Debian deposu (aslında Ubuntu) kurdum ve şimdi web üzerinden bazı belirli sunuculara kullanılabilir hale getirmek istiyorum. HTTPS kullanarak bağlanabilmek için apt-get / aptitude istiyorum ve kendinden imzalı bir sertifika kullanıyorum para harcamak istemediğim için.

Ev sahibi doğrulamak için kendi kök CA sertifikamı kullanmak için apt-get işaret eden apt.conf adam sayfasını takip etmeyi denedim, ancak işe yaramıyor.

Apt.conf dosyam şöyle görünüyor:

#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";

Ayrıca bir istemci sertifikası kullanıyorum, ancak Verify-Peer'ı "false" (yukarıda yorumladı) olarak ayarladığımda her şey işe yaradığından bir sorun gibi görünmüyor.

Aynı CA sertifikasını kullanarak, istemci sertifikası ve anahtarı curl ile iyi çalışır.

Uygun hata ayıklamayı etkinleştirdim (Debug :: Acquire :: https "true") ama çok az bilgi sunuyor.

Nasıl devam edeceğiniz konusunda herhangi bir öneriniz var mı?

Yanıtlar:


5

İstemci kimlik doğrulamasını, yalnızca HTTPS'yi kullanmıyorum, ancak yalnızca bunu kullanarak çalışmaya başladım:

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

Bunu altındaki bir dosyaya koydum /etc/apt/apt.conf.d.


1
Tam olarak istemediğim şey - Sunucuyu kendi CA Sertifikamı kullanarak doğrulamak istiyorum. Doğrulamayı devre dışı bırakmak işe yarıyor, ancak uzun vadede yapmak istemiyorum.
shevron

5

Son zamanlarda benzer bir sorunla karşılaştım. SslForceVersionSeçenek ekleyerek çözdüm.

Benim yapılandırma gibi:

Acquire::https::test.com {
    Verify-Peer "true";
    Verify-Host "true";

    CaInfo "/tmp/ca.crt";

    SslCert "/tmp/client.crt";
    SslKey  "/tmp/client.key";
    SslForceVersion "SSLv3";
};

2
Buna dikkat et. Web siteleri çeşitli güvenlik nedenleriyle SSLv3'ü devre dışı bırakmaya başlıyor; gelecekte sadece TLSv1 ve üstü çalışacak ve daha sonra sadece TLSv1.2 +
Michael Hampton

3

Gelen Ask Ubuntu , tek bir ana bilgisayara seçeneği sınırlı bir miktar daha basit bu çözümün sürümü ve bir tane buldum.

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

Bu benim için çalıştı.

Ancak buradaki soru soran, kimlik doğrulamasını korumak istedi; Yukarıdaki satırlarda birkaç şey denedim, ancak çalışmasını da sağlayamadım. Diğer yandan, havuzum imzalandığından ve imzalama anahtarını yüklediğimden, SSL kimlik doğrulaması güvenlik için kritik değildir.


Yine, benim istediğim gibi değil - ben yapmak gerek akran doğrulama. Yani, kişisel olarak çalışan bir kurulum var (stunnel ile geçici çözümüme bakın). Bu yine de başkalarına yardımcı olabilir.
shevron

3

Ca sertifikasını kurarak başka bir şekilde çözdüm.

  1. Senin Kopya *.crt/ usr / local / share / ca-sertifika `dosyayı /
  2. Çalıştırmak sudo update-ca-certificates

Bu çözüm en azından Ubuntu 14.04 ile çalışır.


1
Bu, SSL müdahalesi / şifre çözme işlemi yapan proxy'ler üzerinde de çalışır. Basitçe sertifikayı / etc / ssl / certs dosyasına eklemek değildir. Bunun için teşekkür ederim!
Ürdün

1
Benim tarafımdan yüklenen sertifika, güvenlik duvarımızdan kendinden imzalı bir sertifika olduğu için çalışmıyor. Başka sertifikam yok.
Paul

1

Umarım bu başkalarına yardımcı olur - Bunu doğrudan çözemedim.

Geçici bir çözüm olarak, HTTPS veri havuzuma tünel oluşturmak için stunnel4 kullanıyorum. Kendinden imzalı sertifikalar ve müşteri sertifikası stunnel4 ile çok iyi çalışıyorum.

Localhost üzerinde dinlemek için stunnel ayarladım: gelen bağlantılar için 8888 ve bunları repo'ma yönlendirdim (repo.etkialanim.com:443). Http: // localhost: 8888 / adresindeki veri havuzumu arayacak şekilde ayarladım .

Şimdiye kadar bu iyi çalışıyor, ancak gereksiz bir kesmek gibi görünüyor.


-1

GnuTLS veya apt arabası gibi görünüyor. Apt sources.list dosyasındaki ana bilgisayar adı, depo web sunucumdan Apache SunucuAdı ile eşleşmiyorsa TLSv1 kullanarak aşağıdaki hatayı alıyorum:

W: https: //repo.example/debian/dists/unstable/non-free/binary-amd64/Paket : gnutls_handshake () başarısız oldu: Bir TLS uyarı uyarısı alındı.

SSLv3 kullanarak her şey yolunda gidiyor.

Not: Bunun SSL sertifikası ile ilgisi yoktur. Geçersiz bir sertifika aşağıdaki hataya neden olur:

Hata https: //repo1.örnek kararsız / özgür olmayan i386 Paketler SSL: sertifika konu adı (repo.example) hedef ana bilgisayar adıyla 'repo1.example' eşleşmiyor


Aslında bu doğrudur - Apache SNI'yi destekler ve istemciden aldığı ana bilgisayar adı sunucunun yapılandırılmış ana bilgisayar adıyla eşleşmediğinde uyarı verir. Apt'nin uyarı ayrıntılarını yazdırması iyi olurdu, ancak doğru olanı yapıyor. SSLv3'e geri dönmek bugünlerde çok akılsız ve sadece "çalışıyor" çünkü gerçekten kullanmanız gereken özellikleri devre dışı bırakıyorsunuz.
15'te djmitche
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.