GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So generieren Sie ein selbstsigniertes x509-SHA256-Hash-Zertifikat mit OpenSSL

Für eines meiner Projekte mit OpenCA musste ich von sha1 nach sha2 migrieren. Erstens sollte ich feststellen, dass das zugrunde liegende OpenSSL sha2 unterstützt? Hier teile ich einige meiner Erkenntnisse und Lösungen. Openssl (Version 0.9.7h und höher) unterstützt sha256, verwendet jedoch standardmäßig den sha1-Algorithmus zum Signieren. In diesem Tutorial werden wir sehen, wie man ein digitales x509-Zertifikat mit dem sha256-Digest-Algorithmus generiert. „Habe ich dir nebenbei gesagt, dass sha1 schon kaputt ist!“ Schauen Sie sich den Artikel an, der kaputt ist.

Das folgende Bild zeigt Ihnen den Vergleich der SHA-Funktionen:

Bevor Sie fortfahren, finden Sie heraus, ob OpenSSL, ein Open-Source-Toolkit zur Implementierung der Protokolle Secure Socket Layer (SSL) und Transport Layer Security (TLS), installiert ist. Das Toolkit ist vollgepackt mit unzähligen Funktionen, die mit verschiedenen Optionen ausgeführt werden können. Erfahren Sie mehr über die 20 nützlichsten OpenSSL-Befehle Dies würde uns helfen, die Generierung des selbstsignierten x509 sha256-Hash-Zertifikats besser zu verstehen.

Voraussetzungen: Sie müssen OpenSSL installiert haben, um die in diesem Tutorial erwähnten Befehle auszuführen. Wenn Sie keine haben, klicken Sie hier, um sie zu installieren.

Schritt 1:So finden Sie die Openssl-Unterstützung für sha256

Führen Sie den folgenden Befehl aus, um herauszufinden, ob Ihre OpenSSL-Version sha256 Digest unterstützt:

#openssl dgst --help

Beispielausgabe:

Fri Feb 07>$openssl dgst --help
unknown option '--help'
options are
-c to output the digest with separating colons
-d to output debug info
-hex output as hex dump
-binary output in binary form
-sign file sign digest using private key in file
-verify file verify a signature using public key in file
-prverify file verify a signature using private key in file
-keyform arg key file format (PEM or ENGINE)
-signature file signature to verify
-binary output in binary form
-engine e use engine e, possibly a hardware device.
-md5 to use the md5 message digest algorithm (default)
-md4 to use the md4 message digest algorithm
-md2 to use the md2 message digest algorithm
-sha1 to use the sha1 message digest algorithm
-sha to use the sha message digest algorithm
-sha224 to use the sha224 message digest algorithm
-sha256 to use the sha256 message digest algorithm
-sha384 to use the sha384 message digest algorithm
-sha512 to use the sha512 message digest algorithm
-ripemd160 to use the ripemd160 message digest algorithm

Schritt 2:So generieren Sie ein selbstsigniertes x509-SHA256-Hash-Zertifikat mit OpenSSL

sha256 ist Teil von sha2, das aus anderen Hash-Funktionen wie sha224, sha256, sha384, sha512 usw. besteht, wobei sha256 und sha512 die beliebtesten sind. Führen Sie den folgenden OpenSSL-Befehl aus, um ein selbstsigniertes Zertifikat mit der sha256-Hash-Funktion zu generieren. Dieses Zertifikat kann als SSL-Zertifikat zur Sicherung Ihrer Domain-Transaktionen verwendet werden.

#openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout techglimpse.com.key -out techglimpse.com.crt

Weiterlesen:So verschlüsseln Sie Ihr Passwort mit dem sha256-Hashing-Algorithmus .

Schritt 3:Überprüfen Sie die sha256-Hash-Funktion im selbstsignierten digitalen x509-Zertifikat

Nachdem das Zertifikat generiert wurde, müssen Sie überprüfen, ob das Zertifikat tatsächlich die sha256-Hash-Funktion zur Verschlüsselung verwendet. Hier ist der OpenSSL-Befehl, mit dem Sie Folgendes überprüfen können:

#openssl x509 -noout -text -in techglimpse.com.crt

Dieser Befehl listet alle Informationen über das digitale Zertifikat auf, z. B. Gültigkeit, Signaturalgorithmus, Länge des öffentlichen Schlüssels usw. Sie können auch überprüfen, ob das SSL-Zertifikat einer Website die SHA1- oder SHA2-Hash-Funktion mit OpenSSL-Befehlen verwendet

Beispielausgabe:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            f4:49:d3:ec:cc:9a:4e:01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com
        Validity
            Not Before: Feb  7 07:09:30 2014 GMT
            Not After : Feb  7 07:09:30 2015 GMT
        Subject: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:c1:bc:2c:71:25:73:89:9f:4a:c6:a2:03:b5:3d:
                    02:8d:bb:99:12:67:f0:51:fd:a1:b7:a2:26:a0:73:
                    19:de:f8:b1:06:f2:d6:55:44:bb:a3:8d:ef:8e:b3:
                    fa:18:a3:10:07:54:0a:be:a4:29:0d:62:fc:dc:e6:
                    bb:3c:e8:6d:6d:2e:fa:0a:b3:7c:8a:ec:f8:c5:57:
                    a6:51:02:3a:9b:9e:8a:66:0e:69:e5:ae:bc:c9:15:
                    05:e4:f0:14:b0:46:71:8a:b6:72:3c:9d:23:a0:e4:
                    1b:94:13:69:5a:5c:ab:dc:22:4a:54:93:01:2b:20:
                    b7:b4:b2:a7:5f:76:5e:b8:85:41:19:a6:47:ff:cb:
                    35:45:59:b3:fe:7d:b8:ff:ac:4b:32:0f:68:ca:88:
                    c4:8d:63:01:b3:01:94:32:79:e7:2f:e9:6e:21:d3:
                    f2:28:ef:c3:2f:f7:e0:47:51:d1:61:0e:78:52:60:
                    d5:bc:1d:98:98:54:0b:51:dd:28:f4:7a:a5:a0:cd:
                    b3:1c:da:80:95:65:e7:32:91:df:61:de:cd:5c:d2:
                    74:e5:de:e1:24:3d:e7:29:23:d2:28:00:85:ce:d6:
                    11:1a:25:68:c7:f1:8f:dd:82:dc:01:43:a5:0b:c4:
                    e7:90:f8:8e:f0:ab:37:ed:32:44:7c:89:4b:c0:a7:
                    dc:7f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70
            X509v3 Authority Key Identifier:
                keyid:EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70
                DirName:/C=IN/ST=KA/L=BANGALORE/O=CDAC/CN=Test.com
                serial:F4:49:D3:EC:CC:9A:4E:01

Grundlegende Einschränkungen für X509v3:
CA:TRUE
Signaturalgorithmus:sha256WithRSAEncryption
b2:d4:22:79:73:56:22:6e:3e:8c:4f:0d:44:ad:d9:a8:46:2b:
9c:4b:c1:ee:b3:ec:a5:58:95:15:49:9e:2a:88:6a:5f:79:31:
af:28:0d:21:da:50:d8:42:77:07:8c:b7:4c:ef:e6:7d:49:7f:
17:69:66:27:a3:ef:cb:a6:72:ef:eb:7c:95:29:3f:03:3c:f9:
74:2a:9e:66:88:2a:91:39:63:0b:9c:39:21:b1:83:3f:44:d3:
4b:c3:d7:d0:d9:bc:b0:8f:79:e1:66:29:03:52:5c:0c:af:a9:
0f:3b:4f:4d:ad:44:aa:be:6d:99:9b:9f:53:b5:89:e6:14:5b:
92:b1:ef:9b:39:9b:ba:e5:d3:f8:4a:c4:a7:74:43:59:7e:1a:
6a:2b:74:ef:10:85:0f:ec:65:2c:57:b8:5c:bc:36:a5:78:84:
2c:11:b1:e4:b5:3c:1d:b9:06:17:7e:d3:09:1c:58:af:de:1d:
3f:b4:1c:a8:1b:d5:53:34:e8:fd:bc:28:39:b7:05:5b:85:9b:
8e:e7:13:ac:52:83:20:93:25:b3:68:57:34:09:c0:89:2c:05:
25:e3:3c:11:6e:09:f9:90:d4:84:e0:ea:77:fc:fe:af:79:38:
f0:65:97:d2:77:fb:00:76:88:8e:df:e1:cc:30:33:dd:01:77:
e4:c2:c8:cc

Sehen Sie sich das folgende Video an:

Lesen Sie auch:OpenSSL-Befehle, die Sie kennen müssen.

Genießen! Wenn Sie irgendwelche Probleme haben, können Sie gerne einen Kommentar posten und ich werde mein Bestes geben, um darauf zu antworten!


Linux
  1. So generieren Sie eine Zertifikatsignierungsanforderung (CSR) unter Linux

  2. Wie finde ich den Hash-Algorithmus, der zum Hashen von Passwörtern verwendet wird?

  3. Generieren Sie eine Zertifikatsignierungsanforderung

  4. So erstellen Sie ein selbstsigniertes SSL-Zertifikat unter Ubuntu 18.04

  5. So verschlüsseln Sie eine große Datei in openssl mit einem öffentlichen Schlüssel

So installieren Sie ein selbstsigniertes SSL-Zertifikat in Plesk

So generieren Sie selbstsignierte SSL-Zertifikate mit OpenSSL

Wie generiert man CSR in Plesk 17?

Wie kann ich ein selbstsigniertes cPanel/WHM-Zertifikat zurücksetzen/erneuern?

So generieren Sie eine CSR (Certificate Signing Request) unter Linux

Wie erstelle ich ein Openssl-Zertifikat mit einem Ablauf von weniger als einem Tag?