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

Linxu环境下如何使用Openssl搭建CA中心签发证书

2015-07-02 15:01 661 查看
Linxu环境下如何使用Openssl搭建CA中心签发证书

0:构建随机数

构建根证书前,需要构建随机数文件(.rand),完整命令如

openssl rand -out private/.rand 1000

rand 随机数命令。这里将随机数文件输出到private目录下。

-out 输出文件路径,

1:生成CA签发根证书:

1.1:构建CA根证书私钥

openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护。

语法

openssl genrsa[-out filename] [-passout arg] [-des] [-des3][-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]

一般使用

openssl genrsa -out ./CAcert/ca.cert.key -rand private/.rnd1024

1.2:生成CA根证书签发申请:

openssl req -new -key./CAcert/ca.cert.key -out ./CAcert/ca.cert.csr -config openssl.cnf -subj"/C=CN/ST=BJ/L=BJ/O=rss/OU=rss/CN=*.rss.cn"

-new:这个选项用于生成一个新的证书请求,并提示用户输入个人信息。如果没有指定-key则会先生成一个私钥文件,再生成证书请求

没有指定-key选项时,会生成私钥文件,默认是有密码保护的,-nodes(no des),可以明确指定不需要密码保护。-keyout可以指定生成的私钥文件名,-pubout可以指定生成的公钥文件名

-subj:替换或指定证书申请者的个人信息

格式是:/type0=value0/type1=value1/type2=...(其中C是Country,ST是state,L是local,O是Organization,OU是OrganizationUnit,CN是commonname)

req 产生证书签发申请命令

-new 表示新请求

-key 密钥,这里为private/ca.key.pem文件

-out 输出路径,这里为private/ca.csr文件

-subj 指定用户信息。这里使用泛域名"*.lesaas.cn"

得到根证书签发申请文件后,我们可以将其发生给CA机构签发,当然我们也可以自行签发根证书。

1.3:签发CA根证书(公钥)

openssl x509 -req -days 10000 -sha1 -extensions v3_ca-signkey ./CAcert/ca.cert.key -in ./CAcert/ca.cert.csr -out ./CAcert/ca.cer

x509 签发X.509格式证书命令。

-req 表示证书输入请求。

-days 表示有效天数,这里为10000天。

-shal 表示证书摘要算法,这里为SHA1算法。

-extensions 表示按OpenSSL配置文件v3_ca项添加扩展。

-signkey 表示自签名密钥,这里为private/ca.key.pem。

-in 表示输入文件,这里为private/ca.csr。

-out 表示输出文件,这里为certs/ca.cer。

-x509: req 命令也可以调用x509命令,以进行格式转换及显示证书文件中的text,modulus等信息

2:为客户端申请证书

2.1:生成客户端证书私钥

openssl genrsa -out ./certs/repro1.cert.key 1024

2.2: 生成客户端证书签发申请

openssl req -new -out ./certs/repro1.csr -key./certs/repro1.cert.key -subj "/C=CN/ST=BJ/L=BJ/O=repro1/OU=repro1/CN=repro1.rss.cn"

2.3: 签发客户端证书

openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA./CAcert/ca.cer -CAkey ./CAcert/ca.cert.key -CAserial ca.srl -CAcreateserial-in ./certs/repro1.csr -out ./certs/repro1.cer

openssl x509 -req -in$CLIENT_CERT_DIR/$CLIENT_CERT_NAME$CLIENT_CERT_START$CLIENT_CERT_CSR \

-out$CLIENT_CERT_DIR/$CLIENT_CERT_NAME$CLIENT_CERT_START$CLIENT_CERT_FILE \

-signkey$CLIENT_CERT_DIR/$CLIENT_CERT_NAME$CLIENT_CERT_START$CLIENT_KEY_FILE \

-CA CAcert/ca.cert.der -CAkey CAcert/ca.cert.key -days$CLIENT_CERT_DAYS -CAserial serial
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: