OpenSSL-Zertifikate in der Linux-Umgebung generieren

OpenSSL-Zertifikate in der Linux-Umgebung generieren

1. Umgebung: CentOS7, Openssl1.1.1k.

2. Konzept:

Stammzertifikat: Es ist die Grundlage für die Generierung von Server-Zertifikaten und Client-Zertifikaten. Es kann auch als selbstsigniertes Zertifikat, also als CA-Zertifikat bezeichnet werden.

Serverzertifikat: Vom Stammzertifikat ausgestellt und auf dem Server konfiguriert.

Client-Zertifikat: Vom Stammzertifikat ausgestellt und auf dem Client konfiguriert. Es kann auch auf einem Webserver konfiguriert und in einem Browser installiert werden.

Symmetrische Verschlüsselung: Eine Datei wird mit einem Kennwort verschlüsselt und anschließend wird dasselbe Kennwort zum Entschlüsseln verwendet.

Asymmetrische Verschlüsselung: Ein Passwort wird zur Verschlüsselung und ein anderer Passwortsatz zur Entschlüsselung verwendet. Hierzu zählen die folgenden beiden Situationen:

Bei Verwendung zum Verschlüsseln von Daten: Verschlüsselung mit öffentlichem Schlüssel, Entschlüsselung mit privatem Schlüssel

Bei Verwendung zum Signieren von Dateien: Signatur mit privatem Schlüssel, Überprüfung der Signatur mit öffentlichem Schlüssel

3. Schritte:

1. Zeigen Sie die OpenSSL-Konfigurationsdatei openssl.cnf an

vim /etc/pki/tls/openssl.cnf

2. Erstellen Sie das Verzeichnis und die Dateien, die für das Stammzertifikat CA erforderlich sind

cd /etc/pki/CA

#Erstellen Sie die in der Konfigurationsdatei erforderlichen Verzeichnisse und Dateien. Informationen mkdir -pv {certs,crl,newcerts,private}

berühren {serial,index.txt}

3. Geben Sie die Startnummer des Zertifikats an

Echo 01 >> Seriell

4. Stammzertifikat generieren

# CA-Privatschlüssel generieren (ca.key)
openssl genrsa -des3 -out ca.key 2048 
# CA-Zertifikatsignieranforderung generieren (ca.csr)
openssl req -new -key ca.key -out ca.csr
# Generieren Sie ein selbstsigniertes CA-Zertifikat (ca.cert)
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

5. Server-Zertifikat generieren

# Privaten Serverschlüssel generieren (server.key)
openssl genrsa -des3 -out server.key 2048 
# Server-Zertifikatsignieranforderung generieren (server.csr)
openssl req -new -key server.key -out server.csr
# Verwenden Sie das CA-Zertifikat, um die Server-CSR zu signieren und das Serverzertifikat (server.cert) zu generieren.
openssl ca -days 3650 -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

6. Client-Zertifikat generieren

# Privaten Client-Schlüssel generieren (client.key)
openssl genrsa -des3 -out client.key 2048
# Client-Zertifikatsignieranforderung generieren (client.csr)
openssl req -new -key client.key -out client.csr
# Verwenden Sie das CA-Zertifikat, um die Client-CSR zu signieren und das Client-Zertifikat (client.cert) zu generieren.
openssl ca -days 3650 -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

7. Zertifikatsinhalt einsehen

openssl x509 -in server.crt -noout -text

8. Konvertieren Sie crt in pem

openssl x509 -in ca.crt -out ca.pem -outform PEM

openssl x509 -in server.crt -out server.pem -outform PEM

openssl x509 -in client.crt -out client.pem -outform PEM

9. Entfernen Sie das Passwort des privaten Schlüssels

openssl rsa -in server.key -out serverkey.pem

openssl rsa -in client.key -out clientkey.pem

Die generierte Zertifikatsliste:

Dies ist das Ende dieses Artikels über die Einzelheiten zum Generieren von OpenSSL-Zertifikaten in der Linux-Umgebung. Weitere relevante Inhalte zum Generieren von OpenSSL-Zertifikaten in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • OpenSSL-Befehle und Beispielcode in Linux
  • Detaillierte Schritte zur Installation von OpenSSL, Swoole und anderen Erweiterungen unter Linux
  • Grundlegende Einführung in Linux OpenSSL

<<:  CSS-Beispielcode mit Suchnavigationsleiste

>>:  Detaillierte Erklärung der einfachen HTML- und CSS-Verwendung

Artikel empfehlen

MySQL 8.X Installations-Tutorial unter Windows

Zuvor habe ich MySQL 5.7 verwendet, aber da MySQL...

So sichern Sie die MySQL-Datenbank regelmäßig automatisch

Wir alle wissen, dass Daten unbezahlbar sind. Wen...

Tägliche Studiennotizen im HTML-Designmuster

Studiennotizen zu HTML-Entwurfsmustern Diese Woch...

CSS verwendet calc(), um die aktuell sichtbare Bildschirmhöhe zu ermitteln

Schauen wir uns zunächst die relativen Längeneinh...

Tiefgreifendes Verständnis der Rolle von Vuex

Inhaltsverzeichnis Überblick So teilen Sie Daten ...

Tutorial zu XHTML-Webseiten

Dieser Artikel soll vor allem Anfängern einige gr...

Wie verfolgt Vue Datenänderungen?

Inhaltsverzeichnis Hintergrund Beispiel Missverst...

Detaillierte Erklärung der MySQL-Partitionstabelle

Vorwort: Partitionierung ist ein Tabellenentwurfs...

React Native JSI implementiert Beispielcode für RN und native Kommunikation

Inhaltsverzeichnis Was ist JSI Was ist anders an ...

Erste Zusammenfassung des Website-Erstellungs-Tutorials für Anfänger

Nachdem ich diese sechs Artikel geschrieben hatte,...