Por que openssl ignore -days para a data de expiração do certificado autoassinado?

1

Eu tenho um script bash que gera um certificado self-signed e funciona perfeitamente:

#! /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

Quando eu verifico o tempo de expiração do client.pem gerado, ele mostra o tempo de expiração no dia 10 de agosto:

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

Qual é o problema com a data de expiração?

    
por ALH 11.07.2018 / 14:48

1 resposta

3

A validade é definida com openssl x509 e não com openssl req . Se você colocar a opção -days com o comando x509 , funcionará.

Você obtém o 30/08 porque não há uma opção -days que substitua a validade do certificado padrão de 30 dias, conforme mencionado em x509 da página do manual:

-days arg
specifies the number of days to make a certificate valid for. The default is 30 days.

Nota lateral, gerando certificado com validade de 358000 dias (980 anos!) é muito longa se você quiser segurança razoável.

    
por 11.07.2018 / 15:14