2012-08-14 87 views
16

Estoy tratando de crear CA firmó el certificado de entidad final utilizando comandos openssl como se muestra a continuación, en Linux:¿Cómo generar el certificado de openssl con caducidad de menos de un día?

# openssl genrsa -des3 -out clientkey.pem 2048 
# openssl req -new -key clientkey.pem -out clientcert.csr 
# cp clientkey.pem clientkey.pem.org 
# openssl rsa -in clientkey.pem.org -out clientkey.pem 
# openssl x509 -req -days 1 -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial 

¿Es posible especificar el tiempo de caducidad en horas, en lugar de días? Necesito generar certificados con, digamos, 1 hora de vencimiento, para algunas pruebas.

El comando Openssl parece ser compatible con algunas opciones para especificar fecha de inicio y fecha de finalización, pero no puedo averiguar cómo usarlo. (Supongo que enddate podría ser compatible con la especificación de la fecha y la hora).

#openssl x509 -req -startdate 120814050000Z -enddate 120814060000Z -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial 

unknown option 120814050000Z 
usage: x509 args 
. 
. 
-startdate  - notBefore field 
-enddate  - notAfter field 
. 
. 
-days arg  - How long till expiry of a signed certificate - def 30 days 
+1

¿La respuesta dada resolvió su problema o no? En caso afirmativo, debería intentar marcar esta pregunta como "respondida". –

Respuesta

0

O aquí es otra manera que he encontrado para trabajar

decir que quiero mi certificado caduque en 10 minutos como una prueba

La fecha actual es el 17 de febrero
La hora actual es 4:40 pm

Primero me puse mi fecha del sistema a -1 día: Feb decimosexto
puse mi reloj del sistema a +10 minutos: 4:50 pm

Creo mi cert usando openssl x509 a expirar en 1 día lo que realmente significa expirará el día de hoy Feb 17th

openssl x509 -req -days 1 -in clientcert.csr -signkey cert.key -out ssl.crt 

entonces se restablece el reloj y la hora del sistema a la fecha y hora actual y voila que usted tiene un certificado que se va a expirar en 10 minutos!

Obviamente no es la manera real de hacer las cosas, pero es agradable y fácil para crear certificados autofirmados para el uso del desarrollador.

+2

Mover el reloj es una práctica horrible. Piensa que tu script se ejecuta en el servidor: mover el tiempo arruinará las cosas. – mafonya

19

Las opciones -startdate y -enddate para el comando x509 son opciones de visualización. Puede establecer la hora de inicio y finalización específica utilizando el comando ca en su lugar para firmar el certificado.

intentar algo como esto:

openssl ca -config /etc/openssl.cnf -policy policy_anything -out clientcert.pem -startdate 120815080000Z -enddate 120815090000Z -cert ca.pem -keyfile cakey.pem -infiles clientcert.csr 
+0

Pude establecer las fechas de inicio y finalización de los valores en el pasado y eso también funcionó. – arcain

+0

Desde la página ca man, el formato de la fecha es YYMMDDHHMMSSZ – user674669

3

Pruebe gossl que permite especificar la fecha y la duración de inicio de la validez del certificado en varias unidades de tiempo.

Lo desarrollé para superar las limitaciones de la línea de comando openssl. La herramienta es ligera, implementada en Go, sin dependencias, bajo licencia MIT.

Cuestiones relacionadas