问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OpenSSL CA服务器搭建与管理指南

创作时间:
作者:
@小白创作中心

OpenSSL CA服务器搭建与管理指南

引用
CSDN
1.
https://blog.csdn.net/weixin_44524357/article/details/145564499

本文将详细介绍如何使用OpenSSL搭建和管理CA(证书颁发机构)服务器。从配置文件修改、目录创建、密钥生成到证书签发和吊销,每个步骤都配有详细的命令行操作示例,帮助读者快速掌握CA服务器的搭建和管理方法。

一、修改openssl配置文件

  1. 设置证书路径
  • 48.ca服务器路径/csk-rootca,用于存放CA服务器相关的所有文件。
  • 56.ca服务器证书路径/csk-rootca/csk-ca.pem,CA服务器证书的存储位置。

二、设置ca服务器路径

  1. 创建CA服务器相关目录并生成必要文件
root@debian:~# mkdir /csk-rootca
root@debian:/csk-rootca# mkdir newcerts
root@debian:/csk-rootca# touch index.txt
root@debian:/csk-rootca# echo 01 > serial

执行上述命令,在系统中创建了/csk-rootca目录及其子目录newcerts,并生成了index.txtserial文件,这些是生成认证证书的必要文件。

三、生成密钥

  1. 执行命令生成CA服务器的RSA私钥
root@debian:/csk-rootca# openssl genrsa -out private/cakey.pem
Generating RSA private key, 2048 bit long modulus (2 primes)
..............................+++++
................................+++++
e is 65537 (0x010001)
root@debian:/csk-rootca#

该命令生成一个2048位的RSA私钥,存储在/csk-rootca/private/cakey.pem文件中。

四、生成CA服务器证书

  1. 方式一:交互式输入信息生成证书
root@debian:/csk-rootca# openssl req -x509 -new -key private/cakey.pem -out csk-ca.pem -days 3650
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State] :China
Locality Name (eg,city) []:BeiJing
Organization Name (eg, company) [Internet Widgits Pty Ltd] :skills
Organizational Unit Name (eg, section) []:Operations Departments
Common Name (e.g. server FQDN or YOuR name) []:Csk Global Root CA
Email Address []:
root@debian:/csk-rootca#
  1. 方式二:通过指定主题信息生成证书
root@AppSrv:/csk-rootca# openssl req -x509 -new -key private/cakey.pem -out csk-ca.pem -subj "/C=CN/ST=China/L=BeiJing/O=skills/OU=Operations Departments/CN=CsK Global Root CA"
root@AppSrv:/csk-rootca#

注意:设置证书有效时间为3650天(-days 3650),若不设置,默认有效期为1个月。若客户端时间不在证书有效时间内,客户端将不信任CA服务器及其签名的所有证书。

五、服务端生成私钥

  1. 创建目录并生成服务端私钥
root@debian:~# mkdir /ssl
root@debian:~# cd /ssl
root@debian:/ssl# openssl genrsa -out server.key
Generating RSA private key, 2048 bit long modulus (2 primes)
..............................+++++
................................+++++
e is 65537 (0x010001)
root@debian:/ssl#

/ssl目录下生成了服务端的RSA私钥server.key

六、服务端生成证书申请文件

  1. 方式一:交互式输入信息生成证书申请文件
root@debian:/ssl# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State] :China
Locality Name (eg,city) []:BeiJing
Organization Name (eg, company) [Internet Nidgits Pty Ltd] :skills
Organizational Unit Name (eg,section) []:Operations Departments
Common Name (e.g. server FQDN or YouR name) []:*.qwe.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
root@debian:/ssl#
  1. 方式二:通过指定主题信息生成证书申请文件
root@AppSrv:/ssl# openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Chine/L=BeiJing/O=skills/OU=Operations Departments/CN=*.qwe.com"
root@AppSrv:/ssl#

注意:一般证书申请文件的国家地区等信息需和CA服务器相同。若题目要求不同国家地区,则需修改/etc/ssl/openssl.cnf文件中的policy配置项。

七、服务端将证书申请文件传给CA服务器,CA服务器进行签名

  1. 方式一:不指定输出文件名进行签名
  2. 方式二:指定输出文件名进行签名

CA服务器签名服务端证书默认有效期是1年,若客户端时间不在服务端证书有效期内,客户端将不信任此证书。签名后的证书存储在/csk-rootca/newcerts/目录下(如01.pem)。

查看证书详细信息:

八、注销证书

  1. 创建注销必要文件
root@AppSrv:/csk-rootca# mkdir crl
root@AppSrv:/csk-rootca# echo 01 > crlnumber
  1. 客户端查看要吊销的证书,确保吊销正确
root@AppSrv:/ssl# openssl x509 -in server.pem -noout -serial
serial=01
root@AppSrv:/ssl#
  1. 吊销证书:(此处未给出具体命令,需补充完整操作)

  2. 生成更新注销证书

root@AppSrv:/csk-rootca# openssl ca -gencrl -out cr1.pem
Using configuration from /usr/lib/ssl/openssl.cnf
root@AppSrv:/csk-rootca#
  1. 查看已吊销哪些证书

#显示以吊销证书的值

九、客户端信任CA服务器

  1. 将CA的公钥发送给客户端后,在客户端执行以下操作
root@AppSrv:/csk-rootca# cp csk-ca.pem /usr/local/share/ca-certificates/ca.crt
root@AppSrv:/csk-rootca# update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
root@AppSrv:/csk-rootca#

注:如果系统中没有/usr/local/share/ca-certificates/路径或update-ca-certificates命令,则需安装ca-certificates包,可通过apt list ca-certificates查看该包的安装情况。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号