Jadi di sekolah kita perlu memasang sertifikat untuk mengakses situs https. Di firefox, saya dapat mengimpor sertifikat. Namun, saya tidak bisa melakukannya dengan baris perintah. Misalnya, menjalankan git push
saya mendapatkan:
fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Bagaimana cara mengimpor sertifikat untuk menghapus ini? Impor harus dapat mengautentikasi untuk saya. Juga, ini adalah .cer
file, jadi jawaban untuk .crt
tidak akan berfungsi. Juga, saya tidak ingin langkah-langkah tentang cara mengatur git, seperti yang sudah saya lakukan. Saya ingin tahu apakah mungkin untuk melakukan itu. Atau bisakah saya menonaktifkan otentikasi dengan git
perintah sepenuhnya dan membuatnya mengabaikan sertifikat seperti apa yang dikatakan di sini? Juga, saya tidak ingin memuat halaman web, saya telah mengatur firefox untuk melakukan itu. Saya ingin git push
perintah untuk memberikan output standar seperti:
[master 630d087] message
1 file changed, 93 insertions(+), 80 deletions(-)
rewrite somefile (84%)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To https://github.com/User/Repo.git
851ae39..630d087 master -> master
Catatan: Saya menemukan itu git config --global http.sslverify false
. Tapi saya ingin melihat jawaban untuk semuanya, bukan hanya git hack
sumber
.crt
. Saya perlu.cer
Jawaban:
TL; DR
Agar semuanya berfungsi dan tidak hanya browser Anda, Anda perlu menambahkan sertifikat CA ke repositori CA tepercaya sistem.
Di ubuntu:
Mengapa
Izinkan saya menjelaskan apa yang sedang terjadi juga, jadi poster lainnya melihat mengapa mereka tidak memerlukan sertifikat untuk menggunakan Github melalui HTTPS.
Apa yang terjadi di sana adalah bahwa sekolah Anda mencegat semua komunikasi SSL, mungkin untuk memantau mereka.
Untuk melakukan itu, yang mereka lakukan pada dasarnya adalah serangan "man in the middle", dan karenanya, browser Anda mengeluh bahwa ia tidak dapat memverifikasi sertifikat github. Proxy sekolah Anda mengeluarkan sertifikat github dan alih-alih memberikan sertifikat sendiri.
Ketika browser Anda mencoba memverifikasi sertifikat yang disediakan sekolah terhadap CA yang menandatangani sertifikat github, itu seharusnya gagal.
Jadi, agar koneksi SSL berfungsi di sekolah, Anda harus secara sadar menerima serangan "MITM" itu. Dan Anda melakukannya dengan menambahkan sertifikat CA sekolah sebagai yang tepercaya.
Ketika Anda mempercayai CA sekolah itu, verifikasi Anda terhadap sertifikat github palsu akan berfungsi, karena sertifikat github palsu akan diverifikasi oleh CA sekolah.
Sadarilah bahwa koneksi SSL tidak aman lagi karena administrator sekolah Anda akan dapat mencegat semua koneksi terenkripsi Anda.
sumber
/usr/local/share/ca-certificates/
. Lihatman update-ca-certificates
, yang berbicara tentang ada daftar putih untuk/usr/share/ca-certificates/
tetapi tentang bagaimana secara implisit mempercayai segala sesuatu di/usr/local/share/ca-certificates/
direktori./usr/local/share/ca-certificates
saya harus menggunakannyasudo dpkg-reconfigure ca-certificates
untuk mengambil CA.The
ca-certificates
paket memiliki petunjuk di nyaREADME.Debian
:Perhatikan bahwa ia menyebutkan direktori yang berbeda dari jawaban lain di sini:
Setelah menyalin ke
/usr/local/share/ca-certificates/
Anda kemudian dapat memperbarui izin sertifikat dan berjalansudo update-ca-certificates
seperti yang disebutkan dalam jawaban Telegraf. Anda akan melihat dalam output bahwa sertifikat ditambahkan.sumber
Ekstensi .crt, .pem dan .cer dapat dipertukarkan, cukup ubah ekstensi nama file, mereka memiliki bentuk yang sama. Coba ini:
sumber
openssl(1)
untuk mengonversi sertifikat ke format PEM. Jalankan:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Saya menggunakan kompilasi dari jawaban sebelumnya:
Itu dapat dimodifikasi menjadi satu-liner.
Seringkali keduanya
site.example.com
danexample.com
merupakan nama host yang sama.sumber
Saya membaca semua solusi dan menyelesaikannya seperti ini;
sumber
Saya mengalami masalah yang sama di mana menginstal sertifikat di firefox dan google chrome bekerja tetapi Memperbarui di terminal
sudo apt-get update
tidak berfungsi dan memberikan 403 kesalahan IP Terlarang. Saya juga memiliki file sample.cer. Jadi pada dasarnya saya harus mengonversikannya menjadi .crt terlebih dahulu.Masih saat melakukan
sudo dpkg-reconfigure ca-certificates
saya tidak dapat menemukan sertifikat yang diperlukan. Masalahnya dengan saya adalah saya menyalin sertifikat di tempat yang salah.Alih-alih menyalinnya di
$/usr/share/ca-certificates
saya menyalinnya di$/usr/local/share/ca-certificates
Tapi dengan menempatkannya di tempat yang tepat memecahkan masalah saya. Tetapi saya masih tidak dapat memperbarui paket atau menginstal paket baru.Perbaikan cepat (untuk saya aktif):
Gunakan ftp bukan http
dan perintah di atas bekerja. Harap buat salinan file sources.list sebelum melakukan perubahan.
Jika ada yang tidak jelas atau tidak tepat tolong lakukan koreksi pada saya.
sumber
Untuk mengakses situs web dengan
https
, apakah Anda menggunakan browser CLI atau GUI, Anda tidak memerlukan sertifikat shool Anda.Untuk menggunakan
git
melalui http, Anda perlu mendaftarkan kunci publik Anda di pengaturan profil Anda di GitHub .Info lebih lanjut di sini . Ubah profil GitHub Anda di sini .
Coba ini:
... berfungsi tanpa sertifikat tambahan.
sumber