Ich habe ein selbstsigniertes Zertifikat für meinen Build-Server erstellt und möchte dem Zertifikat auf meinem Computer global vertrauen, da ich den Schlüssel selbst erstellt habe und keine Warnungen mehr sehen kann.
Ich bin auf Ubuntu 12.04. Wie kann ich das Zertifikat nehmen und es global vertrauen, damit Browser (Google Chrome), CLI-Dienstprogramme (wget, curl) und Programmiersprachen (Python, Java usw.) der Verbindung zu https://mysite.com vertrauen, ohne zu fragen Fragen?
Antworten:
Die einfache Antwort darauf ist, dass so ziemlich jede Anwendung anders damit umgeht.
Auch OpenSSL und GNUTLS (die am häufigsten verwendeten Bibliotheken zur Verarbeitung von Zertifikaten, die zur Verarbeitung signierter Zertifikate verwendet werden) verhalten sich bei der Behandlung von Zertifikaten unterschiedlich, was das Problem ebenfalls erschwert. Auch Betriebssysteme verwenden unterschiedliche Mechanismen, um die von den meisten Websites verwendete "Stammzertifizierungsstelle" zu verwenden.
Abgesehen davon, als Beispiel Debian. Installieren Sie das
ca-certificates
Paket:Anschließend kopieren Sie die öffentliche Hälfte Ihres nicht vertrauenswürdigen CA-Zertifikats (das Sie zum Signieren Ihrer CSR verwenden) in das CA-Zertifikatverzeichnis (als Root):
Und um das Verzeichnis mit Ihrem Zertifikat neu zu erstellen, führen Sie es als root aus:
und wählen Sie die
ask
Option, scrollen Sie zu Ihrem Zertifikat, markieren Sie es für die Aufnahme und wählen Sie OK.Die meisten Browser verwenden ihre eigene CA-Datenbank. Daher müssen Tools wie
certutil
zum Beispiel zum Ändern ihres Inhalts verwendet werden (unter Debian, das imlibnss3-tools
Paket enthalten ist). Mit Chrome führen Sie beispielsweise Folgendes aus:In Firefox können Sie nach dem Zertifikat auf der Festplatte suchen, es als Zertifikatdatei erkennen und es dann in die Liste der Stammzertifizierungsstellen importieren.
Die meisten anderen Befehle, z. B.
curl
Befehlszeilenschalter, mit denen Sie auf Ihre Zertifizierungsstelle zeigen können,oder löschen Sie die SSL-Validierung vollständig
Der Rest muss einzeln untersucht werden, wenn der
ca-certificates
gleiche Trick ihn nicht für diese bestimmte Anwendung sortiert.quelle
dpkg-reconfigure ca-certificates
Liste nicht angezeigt. Was mache ich falsch?whatever.pem
in umbenannt habewhatever.crt
..cer
, und das hat nicht funktioniert. Ich musste es in umbenennen,.crt
damit es erkannt wurde.Nicht interaktiver Ansatz
Für die Verwendung in einem nicht interaktiven Kontext (z. B. einem Kochrezept) können Sie die folgende Sequenz verwenden.
man update-ca-certificates
Diese Methode ist der Methode von @ Drav vorzuziehen, da sie
/usr/share/
normalerweise für Dateien reserviert ist, die vom Betriebssystem / hinzugefügt werdenapt-get
.quelle
/usr/local/share/ca-certificates/
wie in den Manpages erwähnt.crt
, ich fand,.cert
dass es hinzugefügt wurde, aber nicht halfFügen Sie auf Fedora 23 die .pem- oder .der-Datei hinzu,
/etc/pki/ca-trust/source/anchors/
und führen Sie sie aussudo update-ca-trust extract
.Siehe
man update-ca-trust
für Details, zB ob / etc oder / usr verwendet werden soll.quelle
In Centos:
quelle
openssl connect
soll ich diesen Ordner / anchors angeben? Ichself signed certs
Nicht interaktiver Ansatz (18. Oktober)
für neuere debian-basierte Systeme
Es gibt einen Unterschied zwischen dem Hinzufügen eines Zertifikats zum Speicher des Hosts und dem Aktivieren, damit die Anwendungen diese tatsächlich nutzen. Ein im Store vorhandenes Zertifikat wird nicht unbedingt verwendet (obwohl ich zugeben muss, dass immer noch viele Pakete es falsch machen).
Dies kann verwirrend werden, wenn Sie ein Paket
/etc/ca-certificate.conf
einrichten, das Ihr Zertifikat in Betracht zieht und es einfach ablehnt, obwohl es es enthält wurde ohne Fehler hinzugefügt. Sie müssenupdate-ca-certificates
explizit angeben, dass das Zertifikat durch Hinzufügen zu/etc/ca-certificate.conf
oder aktiviert (nicht nur kopiert, sondern auch aktiviert) werden soll/etc/ca-certificate/update.d
.Jetzt wird es verwirrend, da es eine Möglichkeit gibt, einem Zertifikat implizit zu vertrauen, indem Sie einen anderen Pfad verwenden:
quelle