我尝试生成自己的有效期为 40 年的根 CA,如下所示:openssl req -new -newkey rsa:4096 -x509 -days 10950 -extensions v3_ca -keyout myca.key -out myca.crt -config /etc/ssl/openssl.cnf
到目前为止一切顺利,最后让我们看一下证书openssl x509 -noout -text -in myca.crt
:
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=DE, ST=Berlin, L=Berlin, O=Org, OU=Unit, CN=My Root CA/[email protected]
Validity
Not Before: Jan 31 14:07:06 2012 GMT
Not After : Dec 18 07:38:50 1905 GMT
为什么证书中的有效期截至日期(而不是有效期之后日期)是错误的?那么怎样才能纠正这一问题呢?
一些测试表明,溢出发生在 2038 年 1 月的某个时候。
答案1
发现问题:(关键字“openssl time_t 32bit”)
http://projects.puppetlabs.com/projects/1/wiki/SSL_in_The_Year2038
我认为“修复”方法是在具有 64 位 OpenSSL 的系统上生成 CA。