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?
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.
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
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.
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:
- Allgemeine Beschreibung: https://wiki.archlinux.org/index.php/Network_Security_Services
-
certutil
Mann-Seite, Beschreibung der Parameter, die oben verwendet wurden: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutil
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.
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:)
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.
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
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
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