使用openssl生成SAN证书 多个注意点

转自原文:https://blog.csdn.net/a145127/article/details/126311442 补充了几个注意点
前言
由于Golang 1.17以上强制使用SAN证书,故,需要在此进行生成。
如果,系统中安装了git、mingw64工具的话,就无需再安装openssl了,否则需要单独安装openssl。
win10安装与下载
其他系统请参考官方

***注意点 ***:

  • windows下面一直报错,请不要折腾环境,换Linux系统你会舒心很多
  • 生成证书命令 会有多处 需要输入密码,注意看提示 不要忽略密码输入
  • 最后生成的pem文件 如果报错,请不要纠结,再来一遍!
  • pem文件的验收,cat xxx.pem 文件 有内容 表示成功,否则就再来一遍吧

1.创建一个“cert”目录用于,保存证书和配置文件。

2.创建配置文件(openssl.cnf),并保存到“cert”目录下,内容如下:

[ CA_default ]
copy_extensions = copy
 
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
 
[req_distinguished_name]
# 国家
C = CN
# 省份
ST = Shenzhen
# 城市
L = Shenzhen
# 组织
O = Arvin
# 部门
OU = Arvin
# 域名
CN = test.example.com
 
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
 
[alt_names]
# 解析域名
DNS.1 = *.test.example.com
# 可配置多个域名,如下
DNS.2 = *.example.com

3.生成根证书(rootCa)

使用命令行工具,进入到“cert”目录下,并执行如下命令:

# 生成私钥,密码可以输入123456
$ openssl genrsa -des3 -out ca.key 2048
 
# 使用私钥来签名证书
$ openssl req -new -key ca.key -out ca.csr
 
# 使用私钥+证书来生成公钥
$ openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

4.在“cert”目录下,分别创建“server”、“client”目录,它们用来保存服务器密钥与客户端密钥。

5.生成服务器密钥

使用命令行工具,进入到“cert”目录下,并执行如下命令:

# 生成服务器私钥,密码输入123456
$ openssl genpkey -algorithm RSA -out server/server.key
 
# 使用私钥来签名证书
$ openssl req -new -nodes -key server/server.key -out server/server.csr -config openssl.cnf -extensions 'v3_req'
 
# 生成SAN证书
$ openssl x509 -req -in server/server.csr -out server/server.pem -CA ca.crt -CAkey ca.key -CAcreateserial -extfile ./openssl.cnf -extensions 'v3_req'

6.生成客户端密钥

使用命令行工具,进入到“cert”目录下,并执行如下命令:

# 生成客户端私钥,密码输入123456
$ openssl genpkey -algorithm RSA -out client/client.key
 
# 使用私钥来签名证书
$ openssl req -new -nodes -key client/client.key -out client/client.csr -config openssl.cnf -extensions 'v3_req'
 
# 生成SAN证书
$ openssl x509 -req -in client/client.csr -out client/client.pem -CA ca.crt -CAkey ca.key -CAcreateserial -extfile ./openssl.cnf -extensions 'v3_req'

最后给出一个效果图:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值