基本OpenSSL自建本地CA和签发用户证书

本文以windows下自建CA为例。

目录

  • openssl下载与安装
    • 下载地址:
    • OpenSSL安装
  • CA体系介绍
  • CA目录准备
  • OpenSSL自建CA部署
    • 创建根CA
      • 创建根CA私钥
      • 创建根CA证书请求
      • 签发根CA证书
    • 签发中间(中级)CA
      • 创建中间CA私钥。
      • 创建中间CA证书请求
      • 由根CA签发中间CA
    • 签发用户CA
      • 创建用户CA私钥
      • 创建用户CA证书请求
      • 由中间CA签发用户CA

openssl下载与安装

下载地址:

http://slproweb.com/products/Win32OpenSSL.html?utm_source=so
基本OpenSSL自建本地CA和签发用户证书_第1张图片
OpenSSL 支持 32 位和 64 位,根据自己系统选择对应的安装包。

OpenSSL安装

安装默认安装,next and next。最后有一个打赏页,取消选择,点击”Finish“,安装完成。
基本OpenSSL自建本地CA和签发用户证书_第2张图片
安装验证:在命令提示窗口输入“openssl version”,显示版本信息表明安装成功。
基本OpenSSL自建本地CA和签发用户证书_第3张图片

CA体系介绍

基本OpenSSL自建本地CA和签发用户证书_第4张图片
CA首先有一个根CA,根CA是自签发生生成。为了考虑CA体系的安全和管理需要,根CA一般不直接签发用户证书;而是由根CA签发一个或者多个中间(中级)CA,由中间CA来签发最终用户CA。
例如:
基本OpenSSL自建本地CA和签发用户证书_第5张图片

CA目录准备

在进行自建CA部署之前,在D:\创建“rootca”主目录,在rootca下创建一个私钥目录(private)和一个证书目录(certs)。
基本OpenSSL自建本地CA和签发用户证书_第6张图片

OpenSSL自建CA部署

根据CA体系要求,我们第一步首选创建根CA。
打开 cmd 命令窗口(运行中输入cmd),切换到D:\rootca目录下。
基本OpenSSL自建本地CA和签发用户证书_第7张图片

创建根CA

创建根CA私钥

D:\rootca>openssl genrsa -aes256 -out private/rootca.key.pem 2048

基本OpenSSL自建本地CA和签发用户证书_第8张图片
输入私钥保护密码,为了方便后续操作方便,所有密码均设为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”

在这里插入图片描述
基本OpenSSL自建本地CA和签发用户证书_第9张图片

签发根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”。
基本OpenSSL自建本地CA和签发用户证书_第10张图片
基本OpenSSL自建本地CA和签发用户证书_第11张图片

签发中间(中级)CA

步骤与根CA类似,只有在签发中间CA是使用的是根CA证书私钥。

创建中间CA私钥。

D:\rootca>openssl genrsa -aes256 -out private/ca.key.pem 2048

基本OpenSSL自建本地CA和签发用户证书_第12张图片
基本OpenSSL自建本地CA和签发用户证书_第13张图片

创建中间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)。
基本OpenSSL自建本地CA和签发用户证书_第14张图片

签发用户CA

用户CA是由中间CA签发的,到此为至根CA可以放到仓库好好保存起来啦。

创建用户CA私钥

D:\rootca>openssl genrsa -aes256 -out private/user.key.pem 2048

在这里插入图片描述
基本OpenSSL自建本地CA和签发用户证书_第15张图片

创建用户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"

在这里插入图片描述
基本OpenSSL自建本地CA和签发用户证书_第16张图片

由中间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

在这里插入图片描述
基本OpenSSL自建本地CA和签发用户证书_第17张图片
到此为至整个自建CA已经搭建完成,且成功签发了一张用户CA,由于鄙人水平有限,不足之处请不吝赐教,希望大家共同进步。

你可能感兴趣的:(PKI/CA)