openssl req 设置了错误的“不在”日期(溢出错误?)

JMW*_*JMW 4 openssl ssl-certificate certificate-authority

我尝试生成自己的根 CA,有效期为 40 年,如下所示: 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/emailAddress=info@my.root.ca
    Validity
        Not Before: Jan 31 14:07:06 2012 GMT
        Not After : Dec 18 07:38:50 1905 GMT
Run Code Online (Sandbox Code Playgroud)

为什么证书中的有效日期(不是日期之后)是错误的?可以做些什么来纠正这个问题?


一些测试表明,溢出发生在 2038 年 1 月的某个地方。

wee*_*avy 6

发现问题:(关键词“openssl time_t 32bit”)

http://projects.puppetlabs.com/projects/1/wiki/SSL_in_The_Year2038

我认为“修复”是在具有 64 位 OpenSSL 的系统上生成您的 CA。