openssl生成ca证书流程

测试环境可自签ssl证书,使服务可以使用https进行访问
先说总体流程,下面再说具体的实施步骤
场景:用户a想申请ssl证书,在此场景有两个角色,用户a,证书颁发机构;所以待会儿使用openssl生成证书的时候,就要构造证书颁发机构,同时也要构建用户请求证书信息向证书颁发机构申请ssl证书
总体流程:
构造证书颁发机构:
1.生成根证书私钥(pem文件)
2.生成根证书签发申请文件(csr文件)
3.自签发根证书(cer文件)
用户申请证书:
1.生成用户证书私钥(pem文件)
2.生成用户证书签发申请文件(csr文件)
3.使用跟证书签发生成用户证书(cer文件)

具体步骤
构造证书颁发机构:
1.检查openssl版本,centos8.3已默认自带

openssl version

在这里插入图片描述
2.生成根证书私钥(pem文件),也可以为.key文件,都一样,但是每次运行命令生成的不一样

openssl genrsa -out root.pem 2048

2.生成根证书签发申请文件(csr文件)

直接输入生成:

openssl req -new -sha256 -out root.csr -key root.pem

openssl生成ca证书流程_第1张图片
指定配置文件生成:
在这里可以新建一个配置文件,写一些默认值,里面的配置可以参照/etc/pki/tls/openssl.cnf里的配置文件进行修改

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = guangdong
localityName                = Locality Name (eg, city)
localityName_default        = guangzhou
organizationName            = Organization Name (eg, company)
organizationName_default    = mycomp
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = Ted CA Test

#指定配置文件生成
openssl req -new -sha256 -out root2.csr -key root.pem -config ca.conf

openssl生成ca证书流程_第2张图片
3.自签发根证书(cer文件)

openssl x509 -req -in root.csr -out root.cer -signkey root.pem -days 365

用户申请证书:

1.生成用户证书私钥(pem文件)

openssl genrsa -out user.pem 2048

2.生成用户证书签发申请文件(csr文件)

openssl req -new -sha256 -out user.csr -key user.pem

3.使用跟证书签发生成用户证书(cer文件),将user.csr文件发往ca机构签发证书

openssl x509 -req -days 365 -CA root.cer -CAkey root.pem -CAcreateserial -in user.csr -out user.cer

在这里插入图片描述
至此我们已经签发了一个客户端申请的user.cer证书

最后我们导出证书文件为keystore文件

openssl pkcs12 -export -clcerts -name usercer -inkey user.pem -in user.cer -out user.keystore

需要输入之前生成证书请求文件时设置的密码:
在这里插入图片描述
参数含义如下:

pkcs12——用来处理pkcs#12格式的证书

-export——执行的是导出操作

-clcerts——导出的是客户端证书,-cacerts则表示导出的是ca证书

-name——导出的证书别名

-inkey——证书的私钥路径

-in——要导出的证书的路径

-out——输出的密钥库文件的路径

参考博客:OpenSSL生成根证书CA及签发子证书
OpenSSL命令大全,CA证书生成,客户端证书生成实例

你可能感兴趣的:(工具类,openssl)