OpenSSL创建带SAN扩展的证书并进行CA自签

本文介绍了如何使用OpenSSL创建带有Subject Alternative Name (SAN)扩展的SSL证书,并进行CA自签署。SAN允许一个证书支持多个不同的域名,简化了证书管理。遵循步骤,包括生成CA密钥、服务器密钥和证书请求文件,然后使用CA签署服务器证书。注意,哈希算法应使用sha256而非sha1,以避免浏览器提示不安全。此外,对于在netty中使用SSL协议的情况,需要将私钥转换为PKCS8格式。
摘要由CSDN通过智能技术生成

什么是 SAN

SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。

来看看百度的证书,百度证书的扩展域名有这么多,其中还有了*.hao123.com,那我们再看看www.hao123.com的证书

image.png
发现的确是用的前面的百度证书

image.png
所以SAN带来的好处就可以看出来了,一个证书可以用在各种不同的域名下,不需要一个域名买一个证书了。

利用OpenSSL创建证书

因为是本地环境,直接用OpenSSL给自己颁发一个CA根证书用于后面给服务器做CA签署。
1. 生成CA密钥

openssl genrsa -des3 -out ca.key 2048
  1. 生成CA根证书
openssl req -sha256 -new -x509 -days 365 -key ca.key -out ca.crt \
    -subj "/C=CN/ST=GD/L=SZ/O=lee/OU=study/CN=testRoot"
  1. 生成服务器密钥
在CentOS上使用OpenSSL生成SAN证书,您可以按照以下步骤进行操作: 1. 确保您的系统已经安装了OpenSSL。如果没有安装,请使用以下命令安装: ``` sudo yum install openssl ``` 2. 创建一个名为`openssl.cnf`的配置文件。可以使用以下命令创建并编辑该文件: ``` sudo vi openssl.cnf ``` 3. 在`openssl.cnf`文件中添加以下内容来定义SAN扩展: ``` [req] req_extensions = v3_req [v3_req] subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com ``` 将`example.com`和`www.example.com`替换为您要在证书中包含的实际域名。 4. 生成证书的私钥和证书签发请求(CSR)。执行以下命令,并将`example.key`和`example.csr`替换为您想要的文件名: ``` openssl req -newkey rsa:2048 -nodes -keyout example.key -out example.csr -config openssl.cnf ``` 在生成CSR时,根据提示填写相应的信息,如国家、组织、通用名称等。 5. 使用CSR向证书颁发机构(CA)申请证书签名,或者如果您是自签证书,则可以使用以下命令生成自签证书: ``` openssl x509 -req -in example.csr -signkey example.key -out example.crt -extensions v3_req -extfile openssl.cnf ``` 这将使用CSR和私钥生成SAN证书`example.crt`。 现在,您已经成功生成了SAN证书。请注意,在实际部署中,请使用受信任的证书颁发机构(CA)颁发的证书以获得最佳的安全性和信任度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值