Importieren der CA in Firefox: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „ <pre> #!/bin/bash ### (e.g. Firefox, Thunderbird, Chromium) ### Mozilla uses cert8, Chromium and Chrome use cert9 ### ### Requirement: apt install libnss3-t…“
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Install=
*apt install libnss3-tools
*curl https://xinux.net/images/c/c2/Firefox-ca.sh -o firefox-ca.sh
*chmod +x firefox-ca.sh
*./firefox-ca.sh ca.crt


<pre>
=Datei=
#!/bin/bash
[[Datei:Firefox-ca.sh]]
==Systemweit==
== Firefox Enterprise Policies unter Debian ==


### (e.g. Firefox, Thunderbird, Chromium)
{| class="wikitable" style="float:right; margin-left:1em;"
### Mozilla uses cert8, Chromium and Chrome use cert9
|+ Quick Info
|-
! Config File
| /etc/firefox/policies/policies.json
|-
! Policy Key
| ImportEnterpriseRoots
|-
! Status
| about:policies
|}


###
Dieser Artikel beschreibt die korrekte Implementierung von '''Enterprise Policies''' unter Debian GNU/Linux. Ziel ist es, systemweite Root-Zertifikate automatisch in Mozilla Firefox und Thunderbird zu importieren.
### Requirement: apt install libnss3-tools
###


=== Problemstellung ===
Standardmäßig ignoriert Firefox den System-Trust-Store von Debian (`/usr/local/share/ca-certificates/`). Manuelle Importe pro Benutzerprofil sind in professionellen Umgebungen nicht skalierbar. Oft meldet der Browser unter ''about:policies'' den Status "Inactive" oder "No policies enabled", obwohl Konfigurationsdateien vorhanden sind.


###
=== Konfiguration (policies.json) ===
### CA file to install (customize!)
###


certfile="$1"
==== Pfadstrategie ====
certname="My Root CA"
Unter Debian (insbesondere bei Verwendung von '''firefox-esr''') hat der Pfad in `/etc/` Vorrang vor den Verzeichnissen unter `/usr/`.


* '''Primärer Pfad:''' `/etc/firefox/policies/policies.json`
* '''Alternativer Pfad:''' `/usr/lib/firefox-esr/distribution/policies.json`


###
==== Quelltext ====
### For cert8 (legacy - DBM)
Die JSON-Struktur muss zwingend mit dem "policies"-Objekt beginnen.
###


for certDB in $(find ~/ -name "cert8.db")
<syntaxhighlight lang="json">
do
{
    certdir=$(dirname ${certDB});
  "policies": {
     certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d dbm:${certdir}
     "Certificates": {
done
      "ImportEnterpriseRoots": true
    }
  }
}
</syntaxhighlight>


=== Implementierung ===


###
# '''Verzeichnis erstellen:'''
### For cert9 (SQL)
#: <code>sudo mkdir -p /etc/firefox/policies</code>
###
# '''Konfiguration schreiben:'''
#: <code>echo '{"policies": {"Certificates": {"ImportEnterpriseRoots": true}}}' | sudo tee /etc/firefox/policies/policies.json</code>
# '''Berechtigungen anpassen:'''
#: <code>sudo chmod 644 /etc/firefox/policies/policies.json</code>
# '''Prozesse neu starten:'''
#: <code>pkill -9 firefox</code>


for certDB in $(find ~/ -name "cert9.db")
=== Validierung ===
do
 
    certdir=$(dirname ${certDB});
* Öffnen der URL '''about:policies''' im Browser.
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
* Der Status muss '''Active''' (Grün) sein.
done
* Unter dem Reiter '''Aktiv''' muss die Tabelle den Eintrag <code>ImportEnterpriseRoots : true</code> listen.
</pre>
 
=== Fehlerbehebung (Debugging) ===
 
; Status "Active but no policies enabled" : Firefox findet die Datei, kann das JSON aber nicht parsen.
* Prüfe auf fehlende Klammern oder Anführungszeichen.
* Nutze die Browser-Konsole (<code>Strg</code> + <code>Umschalt</code> + <code>J</code>) für detaillierte Fehlermeldungen der ''EnterprisePolicies''-Engine.
 
; Status "Inactive" : Der Pfad ist falsch oder die Dateirechte verhindern den Lesezugriff durch den Firefox-Prozess.
 
; Seite weiterhin "Not Secure" : Wenn die Policy aktiv ist, aber die Seite rot bleibt, liegt ein Fehler im Zertifikat vor:
* '''SAN (Subject Alternative Name):''' Moderne Browser ignorieren den Common Name (CN). Das Feld <code>subjectAltName</code> ist zwingend erforderlich.
* '''CA-Flag:''' Das Root-Zertifikat muss die Extension <code>Basic Constraints: CA:TRUE</code> besitzen.
* '''Laufzeit:''' Zertifikate mit einer Gültigkeit von über 398 Tagen werden von Mozilla oft abgelehnt.
 
=== Übertragung auf Thunderbird ===
Für Thunderbird kann die identische Datei verwendet werden:
<code>sudo mkdir -p /usr/lib/thunderbird/distribution</code>
<code>sudo cp /etc/firefox/policies/policies.json /usr/lib/thunderbird/distribution/policies.json</code>
 
[[Kategorie:Administration]]
[[Kategorie:Sicherheit]]
[[Kategorie:Debian]]

Aktuelle Version vom 13. März 2026, 19:24 Uhr

Install

Datei

Datei:Firefox-ca.sh

Systemweit

Firefox Enterprise Policies unter Debian

Quick Info
Config File /etc/firefox/policies/policies.json
Policy Key ImportEnterpriseRoots
Status about:policies

Dieser Artikel beschreibt die korrekte Implementierung von Enterprise Policies unter Debian GNU/Linux. Ziel ist es, systemweite Root-Zertifikate automatisch in Mozilla Firefox und Thunderbird zu importieren.

Problemstellung

Standardmäßig ignoriert Firefox den System-Trust-Store von Debian (`/usr/local/share/ca-certificates/`). Manuelle Importe pro Benutzerprofil sind in professionellen Umgebungen nicht skalierbar. Oft meldet der Browser unter about:policies den Status "Inactive" oder "No policies enabled", obwohl Konfigurationsdateien vorhanden sind.

Konfiguration (policies.json)

Pfadstrategie

Unter Debian (insbesondere bei Verwendung von firefox-esr) hat der Pfad in `/etc/` Vorrang vor den Verzeichnissen unter `/usr/`.

  • Primärer Pfad: `/etc/firefox/policies/policies.json`
  • Alternativer Pfad: `/usr/lib/firefox-esr/distribution/policies.json`

Quelltext

Die JSON-Struktur muss zwingend mit dem "policies"-Objekt beginnen.

{
  "policies": {
    "Certificates": {
      "ImportEnterpriseRoots": true
    }
  }
}

Implementierung

  1. Verzeichnis erstellen:
    sudo mkdir -p /etc/firefox/policies
  2. Konfiguration schreiben:
    echo '{"policies": {"Certificates": {"ImportEnterpriseRoots": true}}}' | sudo tee /etc/firefox/policies/policies.json
  3. Berechtigungen anpassen:
    sudo chmod 644 /etc/firefox/policies/policies.json
  4. Prozesse neu starten:
    pkill -9 firefox

Validierung

  • Öffnen der URL about:policies im Browser.
  • Der Status muss Active (Grün) sein.
  • Unter dem Reiter Aktiv muss die Tabelle den Eintrag ImportEnterpriseRoots : true listen.

Fehlerbehebung (Debugging)

Status "Active but no policies enabled"
Firefox findet die Datei, kann das JSON aber nicht parsen.
  • Prüfe auf fehlende Klammern oder Anführungszeichen.
  • Nutze die Browser-Konsole (Strg + Umschalt + J) für detaillierte Fehlermeldungen der EnterprisePolicies-Engine.
Status "Inactive"
Der Pfad ist falsch oder die Dateirechte verhindern den Lesezugriff durch den Firefox-Prozess.
Seite weiterhin "Not Secure"
Wenn die Policy aktiv ist, aber die Seite rot bleibt, liegt ein Fehler im Zertifikat vor:
  • SAN (Subject Alternative Name): Moderne Browser ignorieren den Common Name (CN). Das Feld subjectAltName ist zwingend erforderlich.
  • CA-Flag: Das Root-Zertifikat muss die Extension Basic Constraints: CA:TRUE besitzen.
  • Laufzeit: Zertifikate mit einer Gültigkeit von über 398 Tagen werden von Mozilla oft abgelehnt.

Übertragung auf Thunderbird

Für Thunderbird kann die identische Datei verwendet werden: sudo mkdir -p /usr/lib/thunderbird/distribution sudo cp /etc/firefox/policies/policies.json /usr/lib/thunderbird/distribution/policies.json