Windows创建自定义根证书、自签名服务证书【一】

Windows创建自定义根证书、自签名服务证书【一】

Windows创建自定义根证书、自签名服务证书【一】

参考文章

https://devopscube.com/create-self-signed-certificates-openssl

环境

  • Windows 21H2
  • Git For Windows
  • Git Bash

起步

创建自签根证书

我们需要为浏览器创建自己的根 CA 证书以信任自签名证书。因此,让我们首先创建根 CA 证书。 让我们创建一个名为 openssl 的目录来保存所有生成的密钥和证书。

1
mkdir openssl && cd openssl

执行以下openssl命令来创建rootCA.keyrootCA.crt。替换SOYBEANCA为您的域名或 IP 地址,这里用SOYBEAN作为单位和组织名称。

1
openssl req -new -x509 -days 3650 -nodes -subj "//C=CN/C=CN/ST=ZJ/L=HZ/O=SOYBEAN/OU=SOYBEAN/CN=SOYBEANCA" -keyout rootCA.key -out rootCA.crt

创建自签名服务证书

请按照以下步骤创建自签名证书。我们将使用我们在上一步中创建的根 CA 注销证书。

创建自签名服务私钥

1
openssl genrsa -out lis.key 2048

创建”证书签名请求”配置文件

证书签名请求英文名:Certificate signing request

我们将创建一个 lis_csr.conf 文件以包含生成 CSR 的所有信息。将 alt_names节点中的值替换为您的域名或 IP 地址。

lis_csr.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C = CN
ST = ZJ
L = HZ
O = SOYBEAN
OU = SOYBEAN
CN = 192.168.1.1

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
IP.1 = 192.168.1.1
#DNS.1 = site.com

使用自签名服务私钥生成证书签名请求 (CSR)

1
openssl req -new -key lis.key -out lis.csr -config lis_csr.conf

现在我们的文件夹应该有三个文件。lis_csr.conf,lis.csrlis.key

创建自签名服务证书拓展属性配置文件

为 SSL 证书创建lis_cert.conf。将 alt_names节点中的值替换为您的域名或 IP 地址。

lis_cert.conf
1
2
3
4
5
6
7
8
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
IP.1 = 192.168.1.1
#DNS.1 = site.com

使用自签名根证书 生成 自签名服务证书

现在,执行以下命令来生成以rootCA.crtrootCA.key为证书颁发机构,创建自签名证书:lis.crt

1
openssl x509 -req  -days 3650 -CAcreateserial -set_serial 01 -CA rootCA.crt  -extfile lis_cert.conf -CAkey rootCA.key -in lis.csr  -out lis.crt  

上面的命令将生成 lis.crt ,它将与我们的 lis.key 一起使用,以在应用程序中启用 SSL。

tips:-CAcreateserial使用后,需要添加-set_serial 01以避免一些问题的发生。如果不指定serial值,会在输出目录生成一个SRL文件,是openssl跟踪可用于新证书的最新序列号的文件,关于SRL文件的问题,见:https://stackoverflow.com/a/66357989。

结束

执行上述流程后,应该会拥有4个文件:rootCA.crtrootCA.keylis.crtlis.key

作者

zhang

发布于

2022-12-28

更新于

2023-09-19

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×