Bagaimana cara membuat sertifikat CA sistem kepercayaan Firefox?

29

Admin jaringan kami baru-baru ini mengaktifkan pemeriksaan HTTPS di firewall / router kami. Untuk pengguna IE ini baik-baik saja karena sertifikat semuanya telah didistribusikan melalui Active Directory untuk mesin yang bergabung dengan domain. Namun, kami memiliki sejumlah pengguna Firefox yang sekarang melempar kesalahan sertifikat di hampir setiap situs HTTPS.

Firefox menggunakan toko CA mereka sendiri, dan mereka juga bangga akan hal itu . Apakah ada cara untuk membuat Firefox mempercayai penyimpanan sertifikat sistem secara default? Saya melihat banyak posting tentang cara melakukan ini di Linux, tetapi tidak ada untuk Windows.

Saya menduga dari pos ini bahwa itu tidak mungkin, tetapi pos itu sudah hampir 4 tahun.

Wes Sayeed
sumber

Jawaban:

46

Sejak Firefox 49 ada beberapa dukungan untuk sertifikat Windows CA dan dukungan untuk Active Directory yang disediakan sertifikat root perusahaan sejak Firefox 52. Juga didukung di macOS untuk membaca dari Keychain sejak versi 63.

Sejak Firefox 68 fitur ini diaktifkan secara default dalam versi ESR (perusahaan), tetapi tidak dalam rilis cepat (standar).

Anda dapat mengaktifkan fitur ini untuk Windows dan macOS about:configdengan menciptakan nilai boolean ini:

security.enterprise_roots.enabled

dan atur ke true.

Untuk GNU / Linux, ini biasanya dikelola oleh p11-kit-trust dan tidak diperlukan flag.

Menyebarkan sistem konfigurasi secara luas

Sejak Firefox 64, ada cara baru dan yang disarankan dengan menggunakan kebijakan, didokumentasikan di https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

Untuk versi lawas, folder instalasi Firefox dapat diambil dari registri Windows, lalu buka defaults\pref\subdirektori dan buat file baru dengan yang berikut ini:

/* Allows Firefox reading Windows certificates */    
pref("security.enterprise_roots.enabled", true);

Simpan dengan .jsekstensi, misalnya, trustwincerts.jsdan mulai ulang Firefox. Entri akan muncul about:configuntuk semua pengguna.

Menyebarkan sistem Sertifikat Windows secara luas

Di Firefox dari 49 hingga 51, itu hanya mendukung toko "Root". Sejak Firefox 52, ia mendukung toko lain, termasuk yang ditambahkan dari domain melalui AD.

Ini sedikit di luar ruang lingkup tetapi menjelaskan yang merupakan satu-satunya toko sertifikat yang didukung oleh Firefox untuk versi 49 hingga 51 atau hanya untuk pengujian lokal. Karena ini menyebarkan untuk semua pengguna mesin lokal, itu memerlukan hak istimewa Administrator di jendela CMD / PowerShell Anda atau dalam skrip penerapan otomatis Anda sendiri .:

certutil -addstore Root path\to\cafile.pem

Ini juga dapat dilakukan dari Konsol Manajemen dengan mengklik banyak jendela jika Anda lebih suka cara mouse ( Cara: Lihat Sertifikat dengan Snap-In MMC ).


sumber
Apakah Anda tahu di mana sertifikat menyimpan sertifikat perlu dimuat agar ini berfungsi?
ETL
@ ET Saya telah menguji hanya dengan toko sistem kepercayaan lokal mesin, yang baik karena bekerja dengan semua akun mesin. Menurut halaman wiki Mozilla yang disebutkan dalam balasan lain mereka berharap dapat menyelesaikan dukungan sertifikat penuh (termasuk sertifikat AD) di Firefox 52. Secara default, certmgr.msc menunjukkan pengguna certstore, tetapi Anda perlu menambahkannya ke certstore mesin lokal. Anda juga dapat menggunakan Windows certutil (jangan bingung dengan Mozilla's NSS certutil) untuk menggunakannya.
Arg. Saya memiliki sertifikat di tempat (saya menambahkannya menggunakan Kebijakan Grup ke Otoritas Sertifikasi Root Tepercaya dari mesin lokal). Saya menyalakan opsi Firefox tetapi sertifikat itu masih tidak digunakan pada FF 50.1. Apakah Anda memiliki sertifikat Anda?
ETL
2
Daftar periksa adalah: 1: Firefox tidak mencantumkan sertifikat Windows di Lanjutan -> Sertifikat, tetapi harus berfungsi sebagai yang tepercaya. 2: Sertifikat server harus dibuat dengan CA itu, menggunakan CA langsung karena sertifikat server tidak akan berfungsi. 3: Sertifikat server harus dibuat dengan benar, mewarisi kebijakan CA untuk nama alternatif subjek. 4: dalam kasus certstore salah, coba gunakan Microsoft's certutil, saya melakukan ini: di jendela cmd Administrator: certutil -addstore Root path\to\cafile.pem(atau .crt)
1
Ini juga disebutkan dalam Mozilla Wiki .
Franklin Yu
2

Sudahkah Anda mempertimbangkan untuk menyebarkan sertifikat itu ke Firefox dan juga ke toko sertifikat Windows?

https://wiki.mozilla.org/CA:AddRootToFirefox merinci beberapa opsi:

  1. Ubah database sertifikat secara langsung menggunakan certutil.
  2. Gunakan fitur autoconfig Firefox, dengan menempatkan file javascript di samping biner, untuk menambahkan sertifikat:

    var certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB);
    var certdb2 = certdb;
    try {
        certdb2 = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB2);
    } catch (e) {}
    cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all.
    certdb2.addCertFromBase64(cert, "C,C,C", "");
    
  3. Mendistribusikan file database sertifikat secara langsung.
  4. Paket Firefox untuk instalasi, termasuk sertifikat dalam distribusi Anda.
  5. Gunakan CCK2 untuk membuat ekstensi yang menambahkan sertifikat.
wfaulk
sumber
1

Tidak ada cara yang baik menangani pemaksaan penggunaan sistem store, tetapi ada solusi yang bagus (memaksakan penggunaan toko yang kompatibel dengan firefox yang dikustomisasi).

Bit script di bawah ini berfungsi dengan baik saat login / logoff.

Stop-Process -processname firefox

$DBPath="\\yourserver\yourshare\cert8.db"
$FirefoxProfiles=Get-ChildItem $Env:appdata\Mozilla\Firefox\Profiles     
$DB=Get-Item $DBPath    
ForEach ( $Profile in $FirefoxProfiles )
{
    $FullPath=join-path $Env:appdata\Mozilla\Firefox\Profiles $Profile
    Copy-Item $DB $FullPath
    $FullPath
}
Tim Brigham
sumber
Anda bahkan dapat memperluas ide seperti ini dan mengambil daftar sertifikat tepercaya saat ini dari toko Windows dan menghasilkan file cert8.db dengan cepat menggunakan Mozilla certutil yang dirujuk dalam jawaban wfaulk.
Ryan Bolger
1

Ada proyek gratis yang menyediakan kemampuan untuk mengelola sertifikat root Firefox menggunakan kebijakan grup. Anda dapat menginstal atau menghapus sertifikat root dari basis data Firefox.

Slipeer
sumber