如何生成带有起止日期的签名证书?附OpenSSL自签名实现步骤
生成带起止日期的自签名令牌签名证书(OpenSSL实操指南)
刚好我对这个流程熟得很,这就帮你把步骤补全,带你用OpenSSL生成符合要求的自签名证书——既能用于令牌签名,还能精准控制起止有效期:
第一步:生成私钥(先带密码再脱密,按需选择)
先搞一个带密码保护的私钥,要是嫌后续用着麻烦,再把密码去掉:
# 生成2048位带密码的RSA私钥,这里临时设密码为x,你换自己的就行 $ openssl genrsa -des3 -passout pass:x -out client.pass.key 2048 # 移除私钥的密码保护,生成无密码的版本(不想脱密就跳过这步) $ openssl rsa -passin pass:x -in client.pass.key -out client.key
第二步:创建证书签名请求(CSR)
这一步要填点证书的基本信息,比如国家、组织名这些,按提示填就行,**通用名称(Common Name)**建议填你的服务域名或者标识,别乱填:
$ openssl req -new -key client.key -out client.csr
第三步:生成带起止日期的自签名证书(CRT)
重点来了!这里有两种方式设置起止日期:
方式1:按有效期天数设置(简单常用)
用-days参数指定从生成当天开始,往后多少天有效——比如下面设365天,就是1年有效期,起始日是生成当天,结束日自动计算:
# 用SHA256算法签名,生成有效期365天的自签名证书 $ openssl x509 -req -sha256 -days 365 -in client.csr -signkey client.key -out client.crt
方式2:指定精确的起止日期(精准控制)
要是你需要固定某一天开始、某一天结束,就用-startdate和-enddate参数,格式是YYYYMMDDHHMMSSZ(Z代表UTC时间),比如从2024年1月1日到2025年1月1日:
# 指定证书从2024-01-01 00:00 UTC开始,到2025-01-01 00:00 UTC结束 $ openssl x509 -req -sha256 -startdate 20240101000000Z -enddate 20250101000000Z -in client.csr -signkey client.key -out client.crt
第四步:打包成PFX格式(单文件包含私钥+证书)
很多场景(比如Windows服务、某些SDK)需要PFX格式的证书,把私钥和证书打包成一个文件就行,执行后会提示你设置PFX的密码:
$ openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt
最后:验证证书信息(确保没搞错)
生成完可以查一下证书的起止日期,确认是不是符合你的要求:
$ openssl x509 -in client.crt -text -noout # 找输出里的「Not Before」(起始日期)和「Not After」(结束日期)字段就行
内容的提问来源于stack exchange,提问作者ubi
相关产品推荐
相关产品推荐

