Saya telah menyiapkan repositori Debian (sebenarnya Ubuntu) untuk penggunaan internal dengan beberapa paket pribadi, dan sekarang ingin membuatnya tersedia melalui web ke beberapa server tertentu. Saya ingin apt-get / aptitude untuk terhubung menggunakan HTTPS, dan karena saya tidak ingin menghabiskan uang menggunakan sertifikat yang ditandatangani sendiri.
Saya sudah mencoba mengikuti halaman manual apt.conf tentang menunjuk apt-get untuk menggunakan sertifikat CA root saya sendiri untuk memvalidasi host, tetapi sepertinya tidak berhasil.
File apt.conf saya terlihat seperti ini:
#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";
Saya juga menggunakan sertifikat klien, tetapi tampaknya tidak menjadi masalah karena ketika saya mengatur Verify-Peer menjadi "false" (berkomentar di atas) semuanya berfungsi.
Menggunakan sertifikat CA yang sama, sertifikat klien dan kunci berfungsi dengan baik dengan curl.
Saya mengaktifkan debugging tepat (Debug :: Acquire :: https "true") tetapi hanya menawarkan sedikit informasi.
Ada saran tentang cara melanjutkan?
sumber
Baru-baru ini, saya mengalami masalah serupa. Saya menyelesaikannya dengan menambahkan
SslForceVersion
opsi.Konfigurasi saya seperti:
sumber
Di askubuntu , saya menemukan versi yang lebih sederhana dari solusi ini dan yang membatasi pilihan untuk satu host.
Ini berhasil untuk saya.
Namun, penanya di sini ingin mempertahankan otentikasi; Saya mencoba beberapa hal di sepanjang garis di atas, tetapi tidak berhasil juga. Di sisi lain, karena repositori saya ditandatangani dan saya telah menginstal kunci penandatanganan, otentikasi SSL tidak penting untuk keamanan.
sumber
Saya menyelesaikannya dengan cara lain, dengan menginstal ca-sertifikat.
*.crt
file Anda ke `/ usr / local / share / ca-sertifikat /sudo update-ca-certificates
Solusi ini setidaknya berfungsi dengan Ubuntu 14.04.
sumber
Semoga ini bisa membantu orang lain - saya belum bisa menyelesaikan ini secara langsung.
Sebagai solusinya, saya sekarang menggunakan stunnel4 untuk membuat terowongan ke repositori HTTPS saya. Sertifikat yang ditandatangani sendiri dan sertifikat klien. Saya telah bekerja sangat baik dengan stunnel4.
Saya telah menyiapkan stunnel untuk mendengarkan di localhost: 8888 untuk koneksi yang masuk, dan mengarahkannya ke repo saya (repo.mydomain.com:443). Saya telah menyiapkan apt untuk mencari repositori saya di http: // localhost: 8888 / .
Sejauh ini ini telah bekerja dengan baik, meskipun sepertinya ini adalah hack yang tidak perlu.
sumber
GnuTLS atau apt tampaknya buggy. Jika nama host dari apt sources.list saya tidak cocok dengan Apache ServerName dari server web repositori saya, saya mendapatkan kesalahan berikut menggunakan TLSv1:
Menggunakan SSLv3 semuanya berfungsi dengan baik.
Catatan: Ini tidak ada hubungannya dengan sertifikat SSL. Sertifikat yang tidak valid akan menghasilkan kesalahan berikut:
sumber