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.key
和 rootCA.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 地址。
1 | [ req ] |
使用自签名服务私钥生成证书签名请求 (CSR)
1 | openssl req -new -key lis.key -out lis.csr -config lis_csr.conf |
现在我们的文件夹应该有三个文件。lis_csr.conf
,lis.csr
和lis.key
创建自签名服务证书拓展属性配置文件
为 SSL 证书创建lis_cert.conf
。将 alt_names
节点中的值替换为您的域名或 IP 地址。
1 | authorityKeyIdentifier=keyid,issuer |
使用自签名根证书 生成 自签名服务证书
现在,执行以下命令来生成以rootCA.crt
和 rootCA.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.crt
、rootCA.key
、lis.crt
、lis.key
。
Windows创建自定义根证书、自签名服务证书【一】
https://yuanjianzhang.github.io/2022/12/28/Windows创建自定义根证书、自签名服务证书【一】/