Firefox'ta sistem genelinde sertifika yetkilileri ekleyin

21

Ubuntu'da varsayılan firefox ile gelmeyen bazı kök CA'ları eklemek istiyorum, ama nasıl olduğunu bilmiyorum.

Bunları certutil ile yerel sertifikalara eklemeyi denedim, ancak işe yaramadı. Sertifika veritabanımı karıştırdı.

$ certutil -A -d .mozilla/firefox/kek3dogy.default/ -i /usr/local/share/ca-certificates/FNMT_ACRAIZ.crt -n "Certificado Raiz FNMT" -t "TCu,Cuw,Tuw"

ve sonra

$ certutil -L -d .mozilla/firefox/kek3dogy.default/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Go Daddy Secure Certification Authority                      ,,   
VeriSign Class 3 Secure Server CA - G3                       ,,   
VeriSign Class 3 Extended Validation SSL CA                  ,,   
DigiCert High Assurance CA-3                                 ,,   
GlobalSign Domain Validation CA - G2                         ,,   
GeoTrust SSL CA                                              ,,   
StartCom Class 2 Primary Intermediate Server CA              ,,   
Google Internet Authority                                    ,,   
Certificado Raiz FNMT                                        CT,C,c
USERTrust Legacy Secure Server CA                            ,,   
HP Jetdirect 2B0EAD20                                        ,,   
Akamai Subordinate CA 3                                      ,,   
VeriSign, Inc.                                               ,,   
Thawte SGC CA                                                ,,   
VeriSign Class 3 Secure Server CA - G2                       ,,

Sertifika Firefox'ta görünmeyecek. Bunu birkaç kez denedim, hatta profili sildim ve bir kez Firefox arayüzünde ortaya çıktı, ama tamamen boş.

Her neyse, bu sadece bir kullanıcı için ve bunları sistem genelinde eklemek istiyorum. Değiştirebileceğim sistem çapında bir veritabanı var mı? Nasıl?

Değiştiremediğim sistem çapında bir veritabanı yoksa, kullanıcı profilini değiştirmek için X başlangıç ​​betiğine ( /etc/X11/Xsession.d/ olanlar veya /etc/xdg/autostart/ xdg autostart sistemi tarafından çağrılan bir betiğe) güvenebilirim. oturum başlangıcı, ancak işe yarayan bir çözüme ihtiyacım var. Artık kullanıcı profillerinde sertifikaları komut satırından yükleyemiyorum!

    
sordu Jorge Suárez de Lis 18.01.2013 11:29

7 cevap

15

Buradaki sorun, Firefox'un sertifikaları aradığı 'merkezi' bir konuma sahip olmamasıdır. Sadece mevcut profile bakmaktadır. Bu nedenle, /usr/share/ca-certificates veya diğer benzer dizinlerin değiştirilmesi Firefox ile çalışmaz. Bu yıllarca talep edilen bir şeydir; 620373 , 449498 ve 454036 (ve muhtemelen başkaları da vardır).

Yani sadece iki tür çözümle ayrıldınız: ya her bir profili değiştirin ya da Firefox'un davranışını değiştirin. Bunun aradığınız şey olmadığını biliyorum, ancak Firefox'un yalnızca kullanıcı profillerine bakması nedeniyle hiçbir yol yoktur.

Bunu söyledikten sonra, tercih ettiğim çözüm sert ya da sembolik bağlar kullanmak, özellikle de sabit bağlantılarla giderdim. Bu çözüm kesinlikle en kolay ve muhtemelen daha iyi, ancak yargılamak için yeterli bilgiye sahip değilim.

Yapmanız gereken şey, her profil için her cert8.db ve key3.db dosyalarını kaldırıyor ve bunları "en eksiksiz" cert8.db ve key3.db 'ya olan bağlantılar ile değiştiriyor. Sabit bağlantılarla giderseniz, orijinal cert8.db ve key3.db yenisinden ayırt edilemez.

İhtiyaçlarınıza uygun izinleri ayarlamayı unutmayın. Büyük ihtimalle, chmod a+rw 'ye ihtiyacınız olacak, böylece herkes bir sertifika ekleyebilecek / kaldırabilecek. Yalnızca belirli kullanıcıların sertifika ekleyebilmesini / kaldırabilmesini istiyorsanız, bir grup oluşturabilir, bu veritabanına iki veritabanını atayabilir ve gruba +w izin verebilirsiniz.

    
verilen cevap Andrea Corbellini 27.01.2013 18:59
14

En kolay yol, sertifikayı örnek bir firefox profiline aktarmak ve ardından cert8.db'yi sertifika ile donatmak istediğiniz kullanıcılara kopyalamaktır.

Öncelikle sertifikayı örnek kullanıcın firefox profiline aktarın. Sonra kopyala

/home/${USER}/.mozilla/firefox/${randomalphanum}.default/cert8.db

kullanıcıların firefox-profilleri. Bu kadar. Emin olmak isterseniz, bu yeni kullanıcılar sertifikayı otomatik olarak alırsa cert8.db 'yi şu şekilde kopyalayın:

/etc/firefox-3.0/profile

Burada mevcut sertifikaları geçersiz kılan alternatif bir yol var: [linux sistemleri için bash parçası]

certificateFile="MyCa.cert.pem"
certificateName="MyCA Name" 
for certDB in $(find  ~/.mozilla* ~/.thunderbird -name "cert8.db")
do
  certDir=$(dirname ${certDB});
  #log "mozilla certificate" "install '${certificateName}' in ${certDir}"
 certutil -A -n "${certificateName}" -t "TCu,Cuw,Tuw" -i ${certificateFile} -d ${certDir}
done

certutil'i libnss3-tools paketinde (debian / ubuntu) bulabilirsiniz.

Ayrıca bkz: CA Sertifikasının programa göre içe aktarılması

Kaynak: Belgeyi Mozilla'ya Programlı Olarak Yükleme

    
verilen cevap TomKat 02.11.2013 08:55
1

CCK Sihirbazı Firefox eklentisinin özelliklerinden biri CA sertifikalarını içe aktarıyor. Bir şirket CA Cert içeren özel bir eklenti oluşturmak için bu eklentiyi kullanıyorum. Ardından, tüm iş istasyonlarının güncelleştirmeleri aldığı iç depodaki özel xpi'yi .deb olarak paketlerim.

CCK Sihirbazı

DÜZENLE: Ubuntu için xpi paketlemek için, / usr / lib / firefox-addons / extensions / [addon-name @ servername] dizinini içeren bir paket oluşturmanız ve xpi'nin tüm içeriğini açmanız gerekir. bu dizine Örneğin, addon foobarbaz'ınızı ve (eğer bu işlevi etkinleştirmiş olsaydınız) intranet.example.com ise güncellemeye ayarlamış olduğunuz sunucuyu isimlendirirseniz, dizin [email protected] olur. Otomatik güncellemeyi hiçbir zaman etkinleştiremedim, ancak bunun yerine repo'daki debiyi güncellerim.

    
verilen cevap Benjamin Long 04.04.2014 17:10
1

Firefox temiz bir kurulumdan sonra çalışır. % Co_de% cinsinden sertifika veritabanı silinirse, bir sonraki Firefox başlangıcında yeniden oluşturulur. Bu, CA sertifikalarının sistem genelinde varsayılan bir depolama alanı olduğunu kuvvetle önerir.

Firefox’un kaynak kodu gösterir Yerleşik CA sertifikaları aslında cert8.db yürütülebilir dosyasına kodlanmıştır. güvenlik / nss / lib / ckfw / builtins içinde bulunurlar. /certdata.txt

Yani, sistem genelinde bir sertifika yüklemenin hiçbir yolu yoktur. Kaynak kodun ekinin fikri mülkiyet haklarıyla ilgili sorunlara yol açabileceğine dikkat edin.

    
verilen cevap yanychar 21.04.2014 16:49
1

Kullanıcılarım için bunu yapan bir "Kullanıcı Ortamı Sanallaştırma" (UEV) uygulaması kullanıyorum, ancak bunu Windows istemcilerinde oturum açma komut dosyaları ile yapabilirsiniz. Dinamik olarak% APPDATA% \ Mozilla \ Firefox \% PROFILE% yolunu bulmak için tüm kodu göndermeyeceğim, ancak bulduğunuzda, bazı temel komutları kullanarak komut dosyalarını içe aktarabilirsiniz. Firefox profiline / cert8.db yolunu belirlemek için Firefox profiles.ini dosyasını temel olarak okuyorum.

certutil.exe uygulamasını kullanarak bakmak isteyebilirsiniz. İşte

Güvenilir sertifikaları otomatik olarak merkezi bir konumdan sistemdeki tüm kullanıcıların Firefox'una aktaran kullanıcılar için oturum açma komut dosyaları çalıştırabilirsiniz.

Sertifikam içe aktarma vb komut dosyasının "çekirdeği":

If Instr(strLine,"Path=Profiles/") Then
  arrLine = Split(strLine, "/")
  strProfile = strAppData & "\Mozilla\Firefox\Profiles\" & arrLine(1)
  strCertDB = strProfile & "\cert8.db"

  'Verify the DB exists, if not move to the next entry
  If objFSO.FileExists(strCertDB) Then
    'Run certutil command on this database
    strCertCommand1 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\MYCA_Root.cer"

    strCertCommand2 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYSECONDCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\SecondCA_Root.cer"

    strCertCommand3 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYTHIRDCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\ThirdCA_Root.cer"

    'Run the import commands for this Firefox profile
    objShell.Run("%comspec% /c " & strCertCommand1),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand2),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand3),0,TRUE
    
verilen cevap Tony Massa 10.03.2015 18:19
1

Çoğu zaman ve varsayılan olarak yapılandırılmamışsa Firefox'un eski güvenlik veritabanlarını (cert8.db, key3.db ve secmod.db) kullandığını öğrendim Bu, sertifikayı Firefox'un kullandığı doğru veritabanına enjekte etmek için farklı bir komut satırı kullanmanız gerektiği anlamına gelir. (certutil'den daha fazla görün)

Yani, sisteminiz varsayılan veri tabanını kullanıyorsa, komut şöyle olmalıdır: (dbm)

certutil -A -n "Description Name" -t "CT,C,C" -d dbm:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt

aksi halde şöyle olmalıdır: (sql)

certutil -A -n "Description Name" -t "CT,C,C" -d sql:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt
adam certutil:

-d [prefix]directory
Specify the database directory containing the certificate and key
database files.

certutil supports two types of databases: the legacy security databases
(cert8.db, key3.db, and secmod.db) and new SQLite databases (cert9.db,
key4.db, and pkcs11.txt).

NSS recognizes the following prefixes:

·   sql: requests the newer database

·   dbm: requests the legacy database

If no prefix is specified the default type is retrieved from
NSS_DEFAUL
    
verilen cevap Asaf Magen 29.06.2016 17:49
1

Popüler inanışın aksine, Firefox’un kendi sert kodlu kümesinin yerine sistem sertifikalarına bakmasını sağlayabilirsiniz.

Bunu yapmak için p11-kit adlı bir paket kullanmak istersiniz. . p11-kit, libnssckbi.so için sabit kodlu bir sertifika kümesi içeren paylaşılan kitaplık için bir drop-in yedeği sağlar. P11-kit sürümü yerine sistem sertifika deposundan sertifikaları okur.

Firefox, libnssckbi.so kendi sürümü ile birlikte gönderildiği için, onu izlemeniz ve libnss3'te sağlanan sürüm yerine onu değiştirmeniz gerekir:

sudo mv /usr/lib/firefox/libnssckbi.so /usr/lib/firefox/libnssckbi.so.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so

Sonra, Firefox'u yeniden başlattıktan sonra Firefox'un sertifika veritabanını yenilemesini (sistem sertifikalarını çekmesine neden olmak) almak için ~/.pki dizinini silin. Not: bu, mağazadaki mevcut sertifikaları siler. Bu nedenle, manuel olarak eklediğiniz özel öğeler varsa, bu klasörü yedekleyip daha sonra yeniden içe aktarmak isteyebilirsiniz.

    
verilen cevap wheeler 15.05.2018 20:02

Etiketlerdeki diğer soruları oku