Wie fügen Sie Ubuntu eine Zertifizierungsstelle (CA) hinzu?

Meine Arbeit hat sich entschieden, seine eigenen certificate authority - (CA) zu Griff verschiedene Aspekte unserer Arbeit sicher ohne zu bezahlen für Zertifikate.

  • E-Mails kryptografisch signieren
  • E-Mail-Inhalte verschlüsseln
  • Machen Sie Zugriff auf Dinge wie das Unternehmen IRC Client-Zertifikat basiert.
  • Schlüssel ehemaliger Mitarbeiter automatisch widerrufen

Sie haben mir eine .pem Datei gesendet, und ich bin mir nicht sicher, wie ich sie zu meiner hinzufügen soll Ubuntu installieren. Die gesendeten Anweisungen waren: " Doppelklicken Sie auf einen Mac, um ihn zu installieren." 

Wie gehe ich vor? Muss ich etwas mit OpenSSL tun, um ein .key, .csr, oder .crt Datei?

Author: ks1322, 2012-06-15

8 answers

Installieren einer CA

Kopieren Sie Ihr Zertifikat im PEM-Format (das Format, das ----BEGIN CERTIFICATE---- enthält) in /usr/local/share/ca-certificates und benennen Sie es mit der Dateierweiterung .crt.

Dann führe sudo update-ca-certificates aus.

Vorbehalte: Diese Installation betrifft nur Produkte, die diesen Zertifikatspeicher verwenden. Einige Produkte verwenden möglicherweise andere Zertifikatspeicher; Wenn Sie diese Produkte verwenden, müssen Sie dieses CA-Zertifikat auch zu diesen anderen Zertifikatspeichern hinzufügen. (Firefox Anweisungen, Chrom Anweisungen, Java-Anleitung)

Testen Der CA

Sie können überprüfen, ob dies funktioniert hat, indem Sie nach dem Zertifikat suchen, das Sie gerade in /etc/ssl/certs/ca-certificates.crt hinzugefügt haben (dies ist nur eine lange Liste aller miteinander verketteten vertrauenswürdigen Zertifizierungsstellen).

Sie können auch Openssls s_client verwenden, indem Sie versuchen, eine Verbindung zu einem Server herzustellen, von dem Sie wissen, dass er ein von der soeben installierten Zertifizierungsstelle signiertes Zertifikat verwendet.

$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = [email protected]
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
   i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/[email protected]

... snip lots of output ...

    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1392837700
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

Das erste, wonach gesucht werden muss, ist die Zertifikatskette in der Nähe der oben auf der Ausgabe. Dies sollte die CA als Emittent anzeigen (neben i:). Dies sagt Ihnen, dass der Server ein Zertifikat präsentiert, das von der CA signiert ist, die Sie installieren.

Suchen Sie zweitens nach dem verify return code am Ende, das auf 0 (ok) gesetzt werden soll.

 299
Author: Mark E. Haase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Mann-update-ca-certificates:

update-ca-certificates  is a program that updates the directory /etc/ssl/certs to hold SSL
certificates  and  generates  ca-certificates.crt,  a  concatenated  single-file  list  of
certificates.

It  reads  the  file  /etc/ca-certificates.conf.  Each  line  gives  a  pathname  of  a CA
certificate under /usr/share/ca-certificates that should be  trusted.   Lines  that  begin
with  "#"  are  comment lines and thus ignored.  Lines that begin with "!" are deselected,
causing the deactivation of the CA certificate in question. Certificates must have a  .crt
extension in order to be included by update-ca-certificates.

Furthermore  all  certificates  with  a  .crt  extension  found below /usr/local/share/ca-
certificates are also included as implicitly trusted.

Aus dem Obigen würde ich schließen, dass der bevorzugte Weg, lokale Zertifikatdateien in den vertrauenswürdigen Speicher abzurufen, darin besteht, sie in /usr/local/share/ca-certificates abzulegen und dann update-ca-certificates auszuführen. Sie müssen /etc/ssl/certs nicht direkt berühren.

 79
Author: Steven Monday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-02-14 13:22:25

Die anderen Antworten zu update-ca-certificates sind korrekt für Anwendungen, die aus dem Systemzertifikatspeicher lesen. Für Chrome und Firefox und wahrscheinlich einige andere muss das Zertifikat in die nssdb, das Backend für die Mozilla NSS-Bibliothek, eingefügt werden.

Aus https://code.google.com/p/chromium/wiki/LinuxCertManagement:

Um beispielsweise einem Root-CA-Zertifikat für die Ausstellung von SSL-Serverzertifikaten zu vertrauen, verwenden Sie

Certutil -d sql:$HOME/.pki/nssdb -A-t "C,," -n -i -

Wobei <certificate nickname> beliebig ist und <certificate filename> dein ist .pem-oder .crt-Datei.

Weitere hilfreiche Referenzen:

 20
Author: Johann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Ich hatte das gleiche Problem und musste die Datei .pem in /usr/local/share/ca-certificates kopieren und in .crt umbenennen. Die .cer - Datei kann einfach in .pem konvertiert werden, z. B. mit openssl, wenn Sie nicht über .pem verfügen.

Nach dem Kopieren der Datei müssen Sie sudo update-ca-certificates ausführen.

 16
Author: greuze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-04-30 13:39:09

Für neuere Builds, die auf Debian basieren, müssen Sie möglicherweise Folgendes ausführen:

sudo dpkg-reconfigure ca-certificates

HINWEIS: sudo dpkg-reconfigure ca-certificates ruft update-ca-certificates intern auf

Sie müssen das Zertifikat natürlich noch kopieren (.crt-Datei) in /usr/share/ca-Zertifikate, bevor Sie dies tun:)

 12
Author: missmah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-09-02 06:19:09

Aufbauend auf dwmw2s Antwort können Sie Anwendungen, die NSS für die Zertifikatverwaltung verwenden, mitteilen, dass sie den System Trust Store verwenden.

libnss3 standardmäßig wird ein schreibgeschützter Satz von Root-CA-Zertifikaten (libnssckbi.so) geliefert, sodass Sie sie die meiste Zeit manuell zum lokalen Benutzervertrauensspeicher in $HOME/.pki/nssdb hinzufügen müssen. p11-kit bietet einen Drop-In-Ersatz für libnssckbi.so, der als Adapter für die in /etc/ssl/certs installierten systemweiten Stammzertifikate fungiert.

Bearbeiten:

Es scheint mehrere Versionen libnssckbi.so gibt, als just-in - libnss3. Das Folgende ist ein Skript, um sie alle zu finden, sie zu sichern und durch Links zu p11-kit zu ersetzen:

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
    sudo mv $line ${line}.bak
    sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

Ursprüngliche Anweisungen:

Installieren Sie dazu p11-kit und libnss3 (falls sie noch nicht instealled sind):

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

Sichern Sie dann das vorhandene libnssckbi.so, das von libnss3 bereitgestellt wird:

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

Schließlich erstellen Sie die symbolische link:

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

Um zu bestätigen, dass es funktioniert hat, können Sie ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so ausführen und es sollte der Link angezeigt werden:

lrwxrwxrwx 1 root root 49 Apr  9 20:28 /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

Wenn Sie nun dem CA-Speicher mit update-ca-certificates ein Zertifikat hinzufügen, stehen diese Zertifikate nun Anwendungen zur Verfügung, die NSS (libnss3) wie Chrome verwenden.

 8
Author: wheeler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-10 01:45:09

Wie bereits erwähnt, verfügen verschiedene Anwendungen, die NSS verwenden, über einen eigenen Zertifikatspeicher. Wie es unter Ubuntu aussieht, müssen Sie certutil manuell verwenden, um Ihre CAs für jede Anwendung für jeden Benutzer hinzuzufügen.

In anderen Distributionen wie Fedora funktioniert so etwas einfach und Sie sollten einen Fehler gegen alle Anwendungen einreichen, die nicht automatisch dem CAs vertrauen, den Sie mit update-ca-trust installieren.

Sie können dies auch in Ubuntu beheben, indem Sie das Paket p11-kit-modules installieren und dann das NSS ersetzen built-in trust roots Modul mit p11-kit-trust.so, indem Sie einen symbolischen Link zum Beispiel von /usr/lib/firefox/libnssckbi.so zu /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

Dann erhalten Sie die konfigurierten Vertrauenswurzeln des Systems, nicht einige fest codierte. Beachten Sie, dass Ubuntu mehrere verschiedene Kopien davon liefert libnssckbi.so bibliothek mit den fest codierten Vertrauenswurzeln, und Sie müssen alle ersetzen!

Vgl. https://bugs.launchpad.net/ubuntu / + quelle / nss/ + Fehler/1647285

 4
Author: dwmw2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-25 10:11:28

Ernsthaft dumme Antwort hier hinzuzufügen, aber ich hatte 2 Stunden damit verbracht, mit Certutils in Linux hin und her zu gehen... Ich war mir sicher, dass alles korrekt war:

hutber@hutber-mint /var/www/asos-mvt-framework $ certutil -L -d sql:${HOME}/.pki/nssdb

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

anyproxy                                                     CT,, 
rootCA                                                       CT,, 
myasos                                                       CT,, 

Aber trotzdem funktionierte in Chrome nichts. Ich habe alles versucht, am Ende....

Restarting Chrome

War der Schlüssel zu meinem Erfolg nach folgendem: Steven Montag Rat

 1
Author: Jamie Hutber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-02 12:58:09