Skip to content

Linux Script - Selbstsigniertes SSL Zertifikat mit SHA256 erstellen und ausgeben

Anfang des Jahres hatte ich euch ein Skript bereitgestellt, welches selbst signierte Zertifikate generiert (siehe Artikel).

Nicht erst seit gestern ist es jedoch sinnvoll auf SHA2 umzustellen. Denn das alte SHA1 gilt seit einiger Zeit als unsicher. 

Übersicht SHA Funktionen

uebersicht_sha

Für euch heißt dies in Zukunft bei der Zertifikatsgenerierung auf SHA2 zu achten.

Selbstsigniertes SSL Zertifikat mit SHA256 erstellen

Im Prinzip muss der alte Befehl nur um einen weiteren Schlüssel "SHA256" oder "SHA512" ergänzt werden.

Unten seht ihr den Befehl, der eine privaten Serverschlüssel mit Zertifikatsanfrage erstellt und im gleichen Zug selbst signiert.

sudo openssl req -x509 -nodes -sha256 -days 1825 -newkey rsa:4096 -keyout server_256.key -out server_256.crt

Generating a 4096 bit RSA private key

...........................++

......................................................................++

writing new private key to 'server_256.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:DE

State or Province Name (full name) [Some-State]:NRW

Locality Name (eg, city) []:ITrig

Organization Name (eg, company) [Internet Widgits Pty Ltd]:ITrig

Organizational Unit Name (eg, section) []:Itrig

Common Name (eg, YOUR name) []:itrig.de

Email Address []:

Zertifikat auf SHA2 überprüfen

Natürlich lassen sich vorhandene oder soeben erzeugte Schlüssel auch auf ihren Inhalt überprüfen. In diesem Fall interessiert uns der SHA Wert.

sudo openssl x509 -noout -text -in server_256.crt

Certificate:

    Data:

        Version: 3 (0x2)

        Serial Number:

            fc:f8:7d:d9:cd:f7:e7:b5

        Signature Algorithm: sha256WithRSAEncryption

        Issuer: C=DE, ST=NRW, L=ITrig, O=ITrig, OU=Itrig, CN=itrig.de

        Validity

            Not Before: Dec 18 13:20:41 2014 GMT

border: none; padding: 0px;">

            Not After : Dec 17 13:20:41 2019 GMT

Damit ihr euch die Eingaben alle sparen könnt, hab ich das Script auf SHA256 angepasst, zusätzlich werden alle Daten am Ende zur Kontrolle ausgegeben.

SHA 256 Skript

Linux Befehl - Zertifizierungsanforderung (CSR) auslesen oder decodieren

Vor einiger Zeit hatte ich einen kleinen Beitrag zur SSL Zertifikaten geschrieben. Damals ging es um die Erstellung einer Anfrage und das eigene Signieren einer Zertifizierungsanforderung. Hin und wieder kann es jedoch vorkommen, dass genau diese CSR Datei noch einmal lesbar ausgelesen werden muss, um die zuvor gemachten Eingaben zu prüfen.

Wird eine CSR Datei in einem Editor geöffnet, werden nur kryptische Inhalte ausgegeben, eingefasst von einem -----BEGIN CERTIFICATE REQUEST----- und einem -----END CERTIFICATE REQUEST-----.

Eine für Menschen leserliche Ausgabe lässt sich mit einem einfachen Konsolenbefehl erreichen.

ubuntu:~$ openssl req -in test.csr -noout -text

Certificate Request:

    Data:

        Version: 0 (0x0)

        Subject: C=DE, ST=Some-State, O=Internet Widgits Pty Ltd, CN=itrig.de

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

                Public-Key: (2048 bit)

                Modulus:

                    00:a1:4e:b4:77:61:1a:ee:1c:65:2b:e7:e0:5f:6a:

                    34:83:ff:a4:35:a7:b3:13:63:ac:dd:10:a1:ee:eb:

                    d5:fb:2c:36:93:03:bd:72:88:4f:74:b6:79:d7:05:

                    73:c6:82:37:4b:81:87:db:fa:c6:66:01:79:16:e1:

                    d9:c3:d8:39:80:d4:da:4d:da:76:f1:44:59:c4:01:

                    37:1d:90:44:7c:7f:9a:f9:66:d6:9e:0a:6b:99:5f:

                    .........

PS: Solltet ihr Open SSL verwenden, vergesst das Aktualisieren nicht.