openssl生成证书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MyCA # MyCA是待建CA的主目录
├─certs/ # certs子目录将存放CA签发过的数组证书(备份目录)
├─private/ # private目录用来存放CA私钥
└─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件
此外使用命令
echo "01" > serial
touch index.txt
在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)

创建CA的配置文件 f
[ ca ]
default_ca = CA_default

[ CA_default ]
dir = ./../MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial
name_opt = ca_default
cert_opt = ca_default
default_crl_days= 7
default_days = 3650*2
default_crl_days= 30
default_bits = 2048
default_md = sha1
preserve = no
policy = policy_anything
x509_extensions = certificate_extensions

[ policy_anything ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional
[ certificate_extensions ]
basicConstraints = CA:false
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
[ req ]
default_bits = 2048
default_keyfile = ./../MyCA/private/cakey.pem
default_md = sha1
prompt = no
distinguished_name = req_distinguished_name
x509_extensions = ca_certificate_extensions

[ req_distinguished_name ]
countryName = CN
stateOrProvinceName = GuangDong
localityName = ShenZhen
organizationName = Root Certification Authority
commonName = localhost
emailAddress = jinjianglun@

[ ca_certificate_extensions ]
basicConstraints = CA:true


1.生成CA根证书
openssl req -x509 -newkey rsa -sha1 -out cacert.pem -outform PEM -days 3560*2 -config ./conf/f
查看信息:
openssl x509 -in cacert.pem -text -noout

2.服务器
1)创建服务器的密钥文件serverkey.pem
openssl genrsa -des3 -out serverkey.pem 2048 -out server.key -keyform PEM
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in serverkey.pem

2)生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书
openssl req -new -key serverkey.pem -out serverreq.pem -outform PEM -sha1 -days 3560*2

1)2)一次生成
openssl req -newkey rsa:2048 -keyout serverkey.pem -keyform PEM -out serverreq.pem -outform PEM -sha1 -days 3560*2
查看信息
openssl req -in s

erverreq.pem -text -noout


3)CSR文件必须有CA的签名,使用自己的制作的CA去签名生成证书
#openssl ca -in serverreq.pem -out serversert.pem -days 3560*2 -md sha1 -cert ./cacert.pem -keyfile ./private/cakey.pem -config ./conf/f

openssl ca -in serverreq.pem -out serversert.pem -days 3560*2 -config ./conf/f

查看信息:
openssl x509 -in serversert.pem -text -noout

4)讲pem的转化成pkcs12
openssl pkcs12 -export -clcerts -in serversert.pem -inkey serverkey.pem -out serversert.p12
openssl x509 -in serversert.pem -inform PEM -out serversert.cer -outform DER

5)吊销证书(作废证书)

一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)

假设需要被吊销的证书文件为cert.pem,则执行以下命令吊销证书:

openssl ca -revoke cert.pem -config ./conf/f

生成证书吊销列表文件(CRL)

准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:

openssl ca -gencrl -out testca.crl -config ./conf/f

还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。

可以用以下命令检查testca.crl的内容:

openssl crl -in testca.crl -text -noout


相关文档
最新文档