J'ai un script bash qui génère un self-signed
certificat et fonctionne parfaitement:
#! /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
Lorsque je vérifie le délai d'expiration du client.pem
, il indique l'heure d'expiration au 10 août:
$ openssl x509 -enddate -noout -in client.pem
notAfter=Aug 10 12:32:07 2018 GMT
Quel est le problème avec la date d'expiration?
La validité est définie avec openssl x509
et pas avec openssl req
. Si vous mettez le -days
option avec x509
commande, cela fonctionnera.
Vous obtenez le 30/08 car il n'y a pas de -days
option qui remplace la validité par défaut du certificat de 30 jours, comme indiqué dans x509
la page de manuel:
-arg arg jours
spécifie le nombre de jours de validité d'un certificat. La valeur par défaut est de 30 jours.
Remarque, la génération d'un certificat avec une validité de 358000 jours (980 ans!) Est trop longue si vous voulez une sécurité raisonnable.