14 Replies Latest reply on Nov 9, 2017 5:13 AM by SitzRieSe

    Firefox und Zertifikate importieren

    gl-hl Apprentice
      Hallo zusammen,

      wir müssen für unseren Proxy ein Zertifikat in den "Firefox-Cert-Store" importieren.
      Hat jemand von euch das schon mal paketiert?

      Soweit ich mich jetzt eingelesen habe, muss dies unter jeder User-Kennung erfolgen und ist nicht so einfach (certutil.exe, cert8.db...)

      Gibt es eine Möglichkeit dies maschinenweit via DSM zu automatisieren? Habt ihr da schon Erfahrungswerte sammeln können?

      Vielen Dank und beste Grüße
        • 1. Re: Firefox und Zertifikate importieren
          Ludwig Apprentice
          Hallo gl-hl

          ja, das haben wir schon gemacht.

          Du benötigst die Zertifikat-Datei, und certutil-Tools. certutil.exe haben wir (soweit meine Doku stimmt) von hier: [URL="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"]NSS (Get the source code and Build it).

          Folgende Dateien aus dem certutil sind notwendig: certutil.exe, freebl3.dll, nspr4.dll, nss3.dll, nssckbi.dll, nssdbm3.dll, nssutil3.dll, plc4.dll, plds4.dll, smime3.dll, softokn3.dll, sqlite3.dll, ssl3.dll, zertifikat.cer


          Wir haben es so wie unten gelöst. Es gibt sicher elegantere Lösungen (z. Bsp. mit Powershell) aber bei uns hat das so funktioniert. In unserem Script ist ein kleiner Check eingebaut ob das Zertifikat schon verteilt wurde. Das Paket wird für jeden User einmal ausgeführt.

          Grüsse Ludwig

          !Root Cert verteilen 
          Set('_i','0')/X
          : StartCert
          ModifyOemEx('%Temp%\Cert\AddCert.cmd','','','',moInsertAtTop+moOverwriteExisting)
          @ECHO OFF
          CD /d %Temp%\Cert
          %Temp%\Cert\certutil.exe -L -n "zertifikatname" -d . >> certutil-2015.03.24.txt

          EndProc/X/TU
          If Exist('%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\profiles.ini')
          Set('_FFprofilePath','')/X
          ReadIni('%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\profiles.ini','Profile%_i%','Path','_FFprofilePath')/X
          If not %_FFprofilePath%=''
            StrReplace('%_FFprofilePath%','/','\','_FFprofilePath')/X
            Set('_FFprofilePath','%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\%_FFprofilePath%')/X
            If not Exist('%_FFprofilePath%\certutil-2015.04.15.txt')
             Set('_ProcessName','firefox.exe')/X
             Set('_WMIName','-')/X
             WMISimpleQuery('\\.\root\cimv2','Win32_Process','Name=%_ProcessName%','_WMI')
              Name
             EndProc/X/TU
             If %_WMIName%='%_ProcessName%'
              Set('_FFrun','1')/X
             Else/X
              CopyFileList('%Temp%\Cert\')
               %_FFprofilePath%\cert8.db
               %_FFprofilePath%\key3.db
              EndProc/X/TU
              If Exist('%Temp%\Cert\cert8.db')
               Set('_CertUtilRC','')/X
               Copy('.\Extern$\Cert\*.*','%Temp%\Cert\*.*')/X/TU
               ExecuteEx('%Temp%\Cert\certutil.exe -A -n "zertifikatname" -i "Zertifikat.cer" -t "CT,C,C" -d .','_RC','3')/?/X/TU
               Set('_RCx','%_RCx% Cert: %_RC%,')
               If %_CertUtilRC%='0'
                Copy('%_FFprofilePath%\cert8.db','%_FFprofilePath%\cert8.db.2015.04.15')/X/TU
                CopyFileList('%_FFprofilePath%\')
                 %Temp%\Cert\cert8.db
                EndProc/X/TU
                ModifyOEM('%_FFprofilePath%\certutil-2015.04.15.txt','','',zertifikatname: datum, zeit')/X/TU
          If not %_i%='5'
            IncrementVar('_i','1')/X
            goto StartCert
          Delete('%Temp%\Cert\*.*')/X/TU
          !----------------------------------------------------------------------------------------------------------------
          • 2. Re: Firefox und Zertifikate importieren
            gl-hl Apprentice
            Hallo Ludwig,

            danke dir für die Denkanstöße.

            Ich bin auf folgendes PowerShell Skript gestoßen und konnte dies erfolgreich in DSM einbauen.
            http://www.no-dumping.com/2015/09/03/firefox-root-certificates-and-you/

            Vielen Dank aber trotzdem
            • 3. Re: Firefox und Zertifikate importieren
              bc1974 Rookie

              Hi gl-hl, wie hast Du das in DSM eingebunden? Über welchen Befehl hast Du das PS aufgerufen. Vielen Dank ciao Ivar

              • 4. Re: Firefox und Zertifikate importieren
                gb-hg Rookie

                Hi bc1974,

                 

                den Post habe ich schon total vergessen... Wir haben das schlussendlich ohne PS und mit einer anderen Lösung verteilt.

                Schau mal hier: Havokmon: Adding an internal root/CA Cert to Firefox

                 

                Hier unser eScript:

                !!
                !##########################################
                !!
                If CheckInstallMode(imUserPart)
                 If Exist('%ProgramFilesDir%\Mozilla Firefox\firefox.exe')
                  If Exist('%appdata%\Mozilla\Firefox\Profiles\.')
                !   !
                !   !check is Firefox running
                   If IsProcessRunning('Firefox.exe',procByFileName)
                    MsgBoxEx('Several certificates must be installed to Firefox.<cr>Please close Firefox now.','_box','',mbOKCancel,'3600','0')
                    If %_box%='Cancel'
                     ExitProcEx(Undone,'User cancelled xy ca cert installation')
                    KillProcess('firefox.exe',kpByFileName+kpKillAll)
                    Sleep('5')
                !   !
                !   !.Create Folder
                   MakeDir('%TEMP%\FirefoxRootCA')/TU
                !   !
                !   !.Copy Binaries + Certificate
                   Copy('.\Extern$\*.*','%TEMP%\FirefoxRootCA')/TU
                !   !
                !   !.Execute Batchfile
                   ExecuteEx('%TEMP%\FirefoxRootCA\_DeployFFCert.bat','RC','10')/?/TU
                !   !
                !   !.CleanUp
                   RemoveFolder('%TEMP%\FirefoxRootCA',iSubDirs)/TU
                !   !
                   ExitProcEx(Done,'Firefox found: Certificates installed')
                  ExitProcEx(Undone,'Firefox found; no Firefox User Profile; Installation still pending')
                 ExitProcEx(Done,'Firefox NOT found: Please reinstall if Firefox is available')
                

                 

                und hier die _DeployFFCert.bat.

                @echo off
                REM Source: http://havokmon.blogspot.de/2012/12/adding-ca-cert-to-firefox.html
                echo ####################################################
                echo.
                echo Root Certificate Firefox Deployment
                echo.
                if not exist C:\ exit
                 Set CERTDIR=%TEMP%\FirefoxRootCA
                REM Set CERTDIR=c:\Temp\CertImport 
                Set FFProfdir=%Appdata%\mozilla\firefox\profiles
                DIR /A:D /B %FFProfdir% > "%Temp%\FFProfile.txt"
                
                FOR /F "tokens=*" %%i in (%Temp%\FFProfile.txt) do (
                CD /d "%FFProfDir%\%%i"
                COPY cert8.db cert8.db.orig /y
                
                
                %CertDir%\certutil.exe -A -n "cert1" -i "%CerDir%\cert1.cer" -t "TCu,TCu,TCu" -d .
                %CertDir%\certutil.exe -A -n "cert2" -i "%CertDir%\cert2.cer" -t "TCu,TCu,TCu" -d .
                )
                DEL /f /q "%Temp%\FFProfile.txt"
                

                 

                Bei der _DeployFFCert.bat. kannst du relativ einfach auch mehrere Zertifikate zur Installation angeben. Hierzu einfach einen weitere certutil.exe Befehlszeile kopieren.

                Die Zertifikate selbst, einfach in das Extern$-Verzeichnis kopieren)

                 

                Beste Grüße

                2 of 2 people found this helpful
                • 5. Re: Firefox und Zertifikate importieren
                  DaHa Apprentice

                  Exakt so machen wir es seit 4 Jahren ohne jegliche Probleme!

                  • 6. Re: Firefox und Zertifikate importieren
                    bc1974 Rookie

                    Hallo gb-hg,

                     

                    vielen Dank! Das hat mir sehr weitergeholfen. Ich habe im Script der "_DeployFFCert.bat" noch etwas ändern müssen da eine Zeile bei uns nicht funktioniert hat.

                    Da die User Profile aus "Vorname Nachname", also mit Leerzeichen bestehen, wurde der Ordner nicht gefunden. Hierzu mußte ich die Variabel %FFProfdir% in Anführungszeichen setzen.

                     

                    1. DIR /A:D /B "%FFProfdir%" > "%Temp%\FFProfile.txt"

                     

                    Ist das Script und die batch Datei universell einsetzbar? Soll heißen, es kann für Windows 7/10 32/64bit eingesetzt werden. Vorausgesetzt es wird ein 32bit Firefox installiert.

                    Werden admin Rechte benötigt um das Zertifikat zu installieren?

                    • 7. Re: Firefox und Zertifikate importieren
                      DaHa Apprentice

                      Wir setzen es ein auf Windows 7 x86 und x64 sowie Windows 10 x64

                      Adminrechte braucht's nicht

                      • 8. Re: Firefox und Zertifikate importieren
                        SitzRieSe Expert

                        Mittlerweile kann Firefox auch den Windows Zertifikatsstore benutzen

                         

                        Configuring Firefox to use the Windows Certificate Store – Cisco Umbrella

                         

                        Gruß

                         

                        Alex

                        1 of 1 people found this helpful
                        • 9. Re: Firefox und Zertifikate importieren
                          gb-hg Rookie

                          Cool! Danke für die Info!

                          Das wird doch gleich mal getestet und in die mozilla.cfg Standard-Konfig eingebaut!

                           

                          Schönen Feierabend (hoffentlich bald )!

                          Beste Grüße

                          • 10. Re: Firefox und Zertifikate importieren
                            gb-hg Rookie

                            Ist das Script und die batch Datei universell einsetzbar?

                            Jup, wir installieren 7 Zertifikate in einem Rutsch. Sollte eins hinzukommen, einfach eine neue Revision und neu verteilen...

                            Nachteil: Der User muss zuerst den Firefox einmalig öffnen, damit ein FF-Profil unter %USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles lokal erstellt/generiert wird.

                            Soll heißen, es kann für Windows 7/10 32/64bit eingesetzt werden.

                             

                            Jup. Ist auch egal, da das Firefox-Profil pro User unter %USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles abgelegt wird.

                            Vorausgesetzt es wird ein 32bit Firefox installiert.

                            Jup, geht auch mit einem Firefox x64 s.o.

                            Werden admin Rechte benötigt um das Zertifikat zu installieren?

                            Nope, die Batch wird pro User ausgeführt.

                            1 of 1 people found this helpful
                            • 11. Re: Firefox und Zertifikate importieren
                              bc1974 Rookie

                              Echt super!!

                               

                              Sonst findet man ja leider wenig über Netinstall/DSM/Ivanti im Netz. Zumindest was DSM Skripte betrifft. ;-) Ich tue mich auf jeden Fall schwer etwas brauchbares zu finden. ITNinja ist oft hilfreich.

                               

                              Aber jetzt die eigentliche Frage:

                               

                              Ich habe festgestellt das in DSM das Paket oft auf grün geht und somit den "compliant status" hat. Jedoch funktioniert es auf einigen Systemen nicht. Es wurde alles (Dateien, dlls usw.) in die vorgesehenen Ordner kopiert, jedoch sind die Zertifikate im Firefox selbst, unter Zertifikate, nicht zu sehen. Ein 2-3 maliges Reinstall des Paketes bringt dann den gewünschten Erfolg. Habt Ihr das auch schon erlebt? Und wenn ja, habt ihr ein Skript erstellt welches prüft ob die Zertifikate tatsächlich in FF importiert wurden.

                               

                              Wahrscheinlich sind wir die einzigen die dieses Problem haben. Zumindest kommt es mir immer so vor.  ;-( ;-)

                               

                              Vielen Dank, verbeug! ;-)

                              • 12. Re: Firefox und Zertifikate importieren
                                bc1974 Rookie

                                Hallo Alexander,

                                 

                                Danke!

                                 

                                ja, ab Firefox Version 52 ist das möglich mit dem Befehl "security.enterprise_roots.enabled,true" in der config (about:config) . Die ganzen Webseiten habe ich auch schon durch. Aber leider benötigen wir weiterhin Silverlight welches ab Version 52 nicht mehr unterstützt wird. Wie auch so viele andere Plugins. Zudem hat das bei uns nicht zuverlässig auf allen Rechnern funktioniert.

                                Ich habe es mit Version 52/56/57 probiert. Leider nicht immer erfolgreich. Und in Version <52 geht es halt nur über den import in Firefox.

                                 

                                Ich danke Euch! Einen schönen Arbeitstag weiterhin!

                                • 13. Re: Firefox und Zertifikate importieren
                                  SitzRieSe Expert

                                  Mh... mir schießen da gleich 2 Gedanken in den Kopf.

                                   

                                  Einmal würde ich mal schauen ob es daran liegt das Firefox vielleicht geöffnet ist? Das wird in dem Skript nicht berücksichtigt. Als 2. würde ich mal für den ExecuteEx Job der die Batch ausführt ein Error Handling einfügen.

                                   

                                  Gruß


                                  Alex

                                  • 14. Re: Firefox und Zertifikate importieren
                                    SitzRieSe Expert

                                    Also wenn es an dem Silverlight Support scheitert... Dann schau dir mal den Firefox ESR an. Den empfehle ich eigtl immer für Unternehmen und den setzen wir auch selber ein. Dort hast du in der aktuellen Version noch Silverlight Support und kannst auch den Windows Zertifikatsstore benutzen.

                                     

                                    Gruß

                                     

                                    Alex