本文以windows下自建CA为例。
目录
openssl下载与安装
下载地址:
http://slproweb.com/products/Win32OpenSSL.html?utm_source=so
OpenSSL 支持 32 位和 64 位,根据自己系统选择对应的安装包。
OpenSSL安装
安装默认安装,next and next。最后有一个打赏页,取消选择,点击”Finish“,安装完成。
安装验证:在命令提示窗口输入“openssl version”,显示版本信息表明安装成功。
CA体系介绍
CA首先有一个根CA,根CA是自签发生生成。为了考虑CA体系的安全和管理需要,根CA一般不直接签发用户证书;而是由根CA签发一个或者多个中间(中级)CA,由中间CA来签发最终用户CA。
例如:
CA目录准备
在进行自建CA部署之前,在D:\创建“rootca”主目录,在rootca下创建一个私钥目录(private)和一个证书目录(certs)。
OpenSSL自建CA部署
根据CA体系要求,我们第一步首选创建根CA。
打开 cmd 命令窗口(运行中输入cmd),切换到D:\rootca目录下。
创建根CA
创建根CA私钥
D:\rootca>openssl genrsa -aes256 -out private/rootca.key.pem 2048
输入私钥保护密码,为了方便后续操作方便,所有密码均设为123456。
创建根CA证书请求
openssl req -new -key private/rootca.key.pem -out private/rootca.csr -subj "/C=CN/ST=JS/L=NJ/O=TestCA/OU=Root CA/CN=TestCA Root CA" -config “C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf”
签发根CA证书
根CA证书的签发采用自签名方式,使用的第一步创建的私钥。
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey private/rootca.key.pem -in private/rootca.csr -out certs/rootca.cer
错误提示:
有效期设为7300时会报asn1格式错误,改为3650,可以成功,这个是日期编码的原因。
openssl x509 -req -days 7300 -sha1 -extensions v3_ca -signkey private/rootca.key.pem -in private/rootca.csr -out certs/rootca.cer
在“certs”目录生成了根CA证书“rootca.cer”。
签发中间(中级)CA
步骤与根CA类似,只有在签发中间CA是使用的是根CA证书私钥。
创建中间CA私钥。
D:\rootca>openssl genrsa -aes256 -out private/ca.key.pem 2048
创建中间CA证书请求
D:\rootca>openssl req -new -key private/ca.key.pem -out private/ca.csr -subj "/C=CN/ST=JS/L=NJ/O=TestCA/OU=TestCA L1/CN=TestCA Certificate Authority" -config "C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf"
由根CA签发中间CA
D:\rootca>openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certs/rootca.cer -CAkey private/rootca.key.pem -CAserial rootca.srl -CAcreateserial -in private/ca.csr -out certs/ca.cer
中间CA生成功,通过证书路径,可以看到上的上级证书(根CA)。
签发用户CA
用户CA是由中间CA签发的,到此为至根CA可以放到仓库好好保存起来啦。
创建用户CA私钥
D:\rootca>openssl genrsa -aes256 -out private/user.key.pem 2048
创建用户CA证书请求
D:\rootca>openssl req -new -key private/user.key.pem -out private/user.csr -subj "/C=CN/ST=JS/L=NJ/O=Alice/OU=Alice Li/CN=Test Company" -config "C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf"
由中间CA签发用户CA
D:\rootca>openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certs/ca.cer -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in private/user.csr -out certs/user.cer
到此为至整个自建CA已经搭建完成,且成功签发了一张用户CA,由于鄙人水平有限,不足之处请不吝赐教,希望大家共同进步。