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…“)
 
 
(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