it-swarm.com.de

Warum openssl -days für das Ablaufdatum des selbstsignierten Zertifikats ignorieren?

Ich habe ein Bash-Skript, das ein self-signed Zertifikat und funktioniert einwandfrei:

#! /bin/bash

# Generate self signed root CA cert
openssl req -nodes -x509 -days 358000 -newkey rsa:2048 -keyout ca.key -out ca.crt -subj "/C=IR/ST=TEH/L=Torento/O=CTO/OU=root/CN=es.example.com/[email protected]"

# Generate server cert to be signed
openssl req -nodes -newkey rsa:2048 -days 358000 -keyout server.key -out server.csr -subj "/C=IR/ST=TEH/L=Torento/O=CTO/OU=server/CN=es.example.com/[email protected]"

# Sign the server cert
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

# Create server PEM file
cat server.key server.crt > server.pem


# Generate client cert to be signed
openssl req -nodes -newkey rsa:2048 -days 358000 -keyout client.key -out client.csr -subj "/C=IR/ST=TEH/L=Torento/O=CTO/OU=client/CN=es.example.com/[email protected]"

# Sign the client cert
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out client.crt

# Create client PEM file
cat client.key client.crt > client.pem

Wenn ich die Ablaufzeit des generierten client.pem, es zeigt die Ablaufzeit am 10. August:

$ openssl x509 -enddate -noout -in client.pem
notAfter=Aug 10 12:32:07 2018 GMT

Was ist das Problem mit dem Ablaufdatum?

7
ALH

Die Gültigkeit wird mit openssl x509 Und nicht mit openssl req Festgelegt. Wenn Sie die Option -days Mit dem Befehl x509 Einfügen, funktioniert dies.

Sie erhalten die Option 30/08, da es keine Option -days Gibt, die die Standardgültigkeit des Zertifikats von 30 Tagen überschreibt, wie in der Manpage x509 Erwähnt:

-Tage arg
gibt die Anzahl der Tage an, für die ein Zertifikat gültig sein soll. Der Standardwert beträgt 30 Tage.

Nebenbei bemerkt, das Generieren eines Zertifikats mit einer Gültigkeit von 358000 Tagen (980 Jahre!) Ist zu lang, wenn Sie angemessene Sicherheit wünschen.

12
oliv