您的位置:首页 > 运维架构

利用openssl工具生成根证书及颁发子证书

2014-11-18 17:16 316 查看
参考自:http://zhtx168.blog.163.com/blog/static/41601548200812503248/

使用opensll工具来生证书过程如下:

一 ) 首先创建CA根证书

1) 生成RSA private key 给CA (3 DES 加密, PEM 格式):

$ openssl genrsa -des3 -out rootca.key 1024

2) 产生一个X509结构,PEM格式的自签名证书(当然也可以由CA机构签名)

$ openssl req -new -x509 -days 365 -key rootca.key -out rootca.crt

3) 查看该根证书的详细内容

$ openssl x509 -noout -text -in rootca.crt

4) 验证证书有效性

$ openssl verify -CAfile rootca.crt rootca.crt

第一个为根证书,第二个为需要验证的子证书,由于是自签名,相当于自己给自己颁发的证书。



二 ) 用根证书颁发子证书

1) 生成一个3DES 加密,PEM格式的RSA private KEY .

$ openssl genrsa -des3 -out user.key 1024

2) 产生证书签名请求文件(PEM格式)

$ openssl req -new -key user.key -out user.csr

3) 使用CA根证书签名

A 生成配置文件如下ca.config :

[ ca ]

default_ca=CA_own

[ CA_own ]

dir=C:/openssl/bin

certs=C:/openssl/bin

new_certs_dir=C:/openssl/bin //生成子证书的目录

database=C:/openssl/bin/index.txt //生成子证书后会更新内容到此文件

serial=C:/openssl/bin/serial.txt //子证书的序列号从此文件读取

certificate=C:/openssl/bin/rootca.crt //根证书

private_key=C:/openssl/bin/rootca.key //根证书的私钥

default_days=365

default_crl_days=30

default_md=md5

preserve=no

policy=policy_anything

[ policy_anything ]

countryName=optional

stateOrProvinceName=optional

localityName=optional

organizationName=optional

organizationalUnitName=optional

commonName=supplied

emailAddress=optional

B 执行如下命令来签名

openssl ca -config ca.config -out user.crt -infiles user.csr

4) 验证证书有效性

openssl verify -CAfile rootca.crt user.crt

用rootca.crt的公钥验证user.crt的签名是否合法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: