openssl 自建 CA 签发证书

内容纲要

概述

  • 创建 CA 根证书
  • 用根证书签发二级 CA 证书
  • 用二级 CA 证书签发服务器,客户端数字证书

环境

  • CentOS 8.2
  • OpenSSL 1.1.1c FIPS 28 May 2019

准备工作

准备服务器(server_openssl.cnf)和客户端(user_openssl.cnf)的配置文件,后续签发数字证书时要用到对应的配置文件

mkdir /root/openssl

# 服务器,客户端的 openssl.cnf
cp /etc/pki/tls/openssl.cnf /root/openssl/server_openssl.cnf
cp /etc/pki/tls/openssl.cnf /root/openssl/user_openssl.cnf

# 修改上述文件
# 1) [ req ] 小节: 取消 req_extensions = v3_req 前面的注释
# 2) [ req_distinguished_name ] 小节: 注释 0.* 开头的内容 
# 3) [ v3_req ] 小节
    ## 服务端增加如下内容,其中 DNS.1 是服务器域名,多个域名可以用 DNS.2/DNS.3/...
        # extendedKeyUsage=serverAuth
        # subjectAltName = @alt_names

        # [ alt_names ]
        # DNS.1 = blog.refusea.com
    ## 客户端
        # extendedKeyUsage=clientAuth

创建运行目录

# 如果想使用其他目录,修改 /etc/pki/tls/openssl.cnf 的 [ tsa_config1 ] 小节
mkdir /etc/pki/CA/newcerts -p
touch /etc/pki/CA/index.txt
# 如果文件不存在,用以下命令创建
echo '01' > /etc/pki/CA/serial
cd /etc/pki/CA

CA 证书

根 CA

openssl genrsa -out ca_root.key 2048
openssl req -x509 -new -key ca_root.key -out ca_root.cer -days 3650 -subj "/C=CN/ST=GD/L=SZ/O=refusea/CN=Refusea-ROOT-CA"

二级 CA

openssl genrsa -out sub_ca.key 2048
openssl req -new -key sub_ca.key -out sub_ca.csr -subj "/C=CN/ST=GD/L=SZ/O=refusea/CN=Refusea-SUB-CA"
openssl ca -extensions v3_ca -in sub_ca.csr -days 3650 -out sub_ca.cer -cert ca_root.cer -keyfile ca_root.key

服务器证书

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=refusea/CN=blog.refusea.com"
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.cer -CA sub_ca.cer -CAkey sub_ca.key -CAcreateserial -extensions v3_req -extfile /root/openssl/server_openssl.cnf 

客户端证书

openssl genrsa -out user.key 2048
openssl req -new -key user.key -out user.csr -subj "/C=CN/ST=GD/L=SZ/O=refusea/CN=wordpress"
openssl x509 -req -days 365 -in user.csr -signkey user.key -out user.cer -CA sub_ca.cer -CAkey sub_ca.key -CAcreateserial -extensions v3_req -extfile /root/openssl/user_openssl.cnf
# 将根证书, 二级证书和用户证书合并
cat ca_root.cer sub_ca.cer user.cer > user_combination.cer
# 用合并证书生成 p12,这样在导入时能同时导入根证书,注意设置导出密码
openssl pkcs12 -export -inkey user.key -in user_combination.cer -out user.p12
openssl 自建 CA 签发证书

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top
粤ICP备2020114259号 粤公网安备44030402004258