我正在尝试使用openssl命令创建CA签名的最终实体证书,如下所示,在Linux中:
# 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
Run Code Online (Sandbox Code Playgroud)
是否可以以小时而不是天来指定到期时间?我需要生成证书,比如1小时的到期时间,以进行一些测试.
Openssl命令似乎支持一些指定startdate和enddate的选项,但我无法弄清楚如何使用它.(我假设enddate可能支持指定日期和时间).
#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
Run Code Online (Sandbox Code Playgroud)
小智 31
x509命令的-startdate和-enddate选项是显示选项.您可以使用ca命令设置特定的开始和结束时间,而不是签署证书.
尝试这样的事情:
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
Run Code Online (Sandbox Code Playgroud)
小智 8
或者这是我发现的另一种工作方式
假设我希望我的证书在 10 分钟内过期作为测试
当前日期是 2 月 17 日
当前时间是 4:40pm首先,我将系统日期设置为 -1 天:2 月 16 日
我将系统时钟设置为 +10 分钟:下午 4:50
我创建的证书openssl x509
将在 1 天后过期,这实际上意味着今天过期Feb 17th
openssl x509 -req -days 1 -in clientcert.csr -signkey cert.key -out ssl.crt
Run Code Online (Sandbox Code Playgroud)
然后,我将系统时钟和时间重置为实际日期和时间,瞧,您的证书将在 10 分钟后过期!
显然这不是真正的做事方式,但是创建供开发使用的自签名证书很好又很容易。
第1步。安装 faketime
sudo apt-get install faketime
Run Code Online (Sandbox Code Playgroud)
第2步。在当前日期前一天生成过期的证书。
faketime 'last friday 5 pm' /bin/bash -c 'openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 6 -nodes'
Run Code Online (Sandbox Code Playgroud)
Step-3验证证书有效期
openssl x509 -noout -text -in cert.pem
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42158 次 |
最近记录: |