如何通过OpenSSL设置证书起始日期为前一天?
OpenSSL生成证书时指定起始日期为前一天的解决方法
你需要在原OpenSSL命令中添加-startdate参数来指定证书的起始生效时间,以下是具体实现方式:
方式一:手动指定前一天日期
OpenSSL接受的日期格式为YYYYMMDDHHMMSSZ(Z代表UTC时区),将前一天的日期按此格式填入即可。比如要设置起始时间为2024年5月19日0点(UTC),修改后的命令如下:
openssl x509 -req -days 3650 -startdate 20240519000000Z -in /test/Test-1490414390.csr -CA /var/www/html/pos/futurex/GENERIC/Airpay-CA-Devices.cer -CAkey /test/GENERIC/Airpay-CA-Devices-privatekey.pem -CAcreateserial -out /test/Airpay-1490414390.cer
方式二:自动生成前一天UTC日期(适用于Shell环境)
如果不想手动计算日期,可以用Shell命令自动生成前一天的UTC时间,避免时区混淆:
# 自动生成前一天的UTC日期,格式匹配OpenSSL要求 START_DATE=$(date -u -d "yesterday" +"%Y%m%d%H%M%SZ") # 执行证书生成命令 openssl x509 -req -days 3650 -startdate $START_DATE -in /test/Test-1490414390.csr -CA /var/www/html/pos/futurex/GENERIC/Airpay-CA-Devices.cer -CAkey /test/GENERIC/Airpay-CA-Devices-privatekey.pem -CAcreateserial -out /test/Airpay-1490414390.cer
验证起始日期
生成证书后,可通过以下命令检查起始日期是否正确:
openssl x509 -in /test/Airpay-1490414390.cer -noout -startdate
输出结果类似notBefore=May 19 00:00:00 2024 GMT,即为设置成功。
内容的提问来源于stack exchange,提问作者Shijin TR
相关产品推荐
相关产品推荐

