Linux环境下使用openssl生成https证书( 二 )


*进行CA签名获取证书时,如果信息完全和已有证书信息相同会报错,即不能生成相同的证书,报错信息为:
failed to update database
TXT_DB error number 2
*在进行CA签名获取证书时,可对证书的有效起止时间作控制,默认有效期是一年,可用-days 3650这样的方式改为10年,如想更精确控制,可使用-startdate 和-enddate参数,如-startdate 120501000000Z -enddate 120601000000Z,日期格式为yyMMddHHmmssZ,分别表示年,月,日,时, 分,秒. 其中"Z"是遗留自初始的UTCTIME. 如果没有"Z",就允许两种附加组"[+/-]hh 'mm'",其中"hh"和"mm"分别为与GMT的时差和分差. 如果有"Z",则时间是以Zulu或GMT时间表示.注:如出现:unable to access the ./demoCA/newcerts directory
这时可找到配置文件,一般是openssl.cnf,修改配置文件项为你生成证书的路径
[ CA_default ]
dir = C:\OpenSSL\bin\demoCA (原值是:./demoCA,注意路径用双斜杠)
5. 生成p12格式证书 (思科是.p12,微软是.pfx)
$openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx $openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx [无交互全自动:$openssl pkcs12 -export -clcerts -in client.pem -inkey client.key -passin pass:111111 -out client.p12 -passout pass:111111] 说明:-in 为欲转换为p12文件的证书文件,-inkey为与转换为p12文件的证书私钥文件,-passin 为私钥文件密码,-out为p12文件,-passout为p12文件打开密码
6.生成pem格式证书
有时需要用到pem格式的证书,可以用以下方式合并证书文件(crt)和私钥文件(key)来生成
$cat client.crt client.key> client.pem $cat server.crt server.key > server.pem 7.PFX文件转换为X509证书文件和RSA密钥文件
$openssl pkcs12 -in server.pfx -nodes -out server.pem $openssl rsa -in server.pem -out server2.key $openssl x509 -in server.pem -out server2.crt 8. 其他相关命令
$openssl rsa -noout -text -in ca.key //查看私钥 生成
服务端证书:ca.crt, server.key, server.crt, server.pem, server.pfx
客户端证书:ca.crt, client.key, client.crt, client.pem, client.pfx

【Linux环境下使用openssl生成https证书】


推荐阅读