TLS初探(4)多域名证书

本文详细介绍了如何使用openssl创建多域名证书请求文件(CSR),通过编辑openssl.cnf配置文件启用Subject Alternative Name字段,并在签发证书时复制CSR中的扩展字段,以实现多域名支持。同时,文章还提到了在证书签发过程中的一些注意事项,如保持openssl.cnf配置的独立性和设置证书为CA以进行后续签发。
摘要由CSDN通过智能技术生成

       在“TLS初探(2)证书简介”中提过,如想使用泛域名,可在Subject DN(Distingushed Name)的CN(Common Name)中使用*通配符,例如*.abc.com。而如果想使用同一证书匹配多个域名,可以使用X.509中扩展字段的Subject Alternative Name字段来进行多域名支持。

       为此如果想支持多域名证书,首先就要想办法在CSR证书请求中增加对X.509 v3扩展字段的支持,默认的openssl.cnf配置文件中并未开启支持;但是个人推荐还是不要修改默认的openssl.cnf配置,而是拷贝一份至CA证书同级目录下,从而确保对每个CA证书制定请求和签发规则。


(一)制作多域名证书请求文件(CSR)

首先找到openssl.cnf中“[ req ]”配置,并打开其下“req_extenstions = v3_req”配置,如下所示:

[ req ]
......
req_extensions = v3_req

表示对于证书签发请求文件,启用req_extensions,并且扩展字段参照“v3_req”配置,接着同样找到“[ v3_req ]”,从而在其下添加Subject Alternative Name扩展,如下所示:

[ v3_req ]
......
subjectAltName = @alternative_names
......
[alternative_names]

DNS.1
### 回答1: mbedtls是一款开源的专注于嵌入式设备的网络通信加密库,其中也包含了对证书的解析功能。mbedtls可以解析各种X.509格式的证书,并提供了相应的API来进行操作。 mbedtls库提供了以下几个函数来解析证书: - `mbedtls_x509_crt_parse`:用于将证书的DER或PEM格式的数据解析为X.509证书结构。 - `mbedtls_x509_crt_free`:用于释放解析后的证书结构所占用的内存。 - `mbedtls_x509_crt_info`:用于打印证书的基本信息,如版本号、序列号、有效期等。 - `mbedtls_x509_crt_verify_info`:用于打印验证证书时的信息,如公钥哈希、签名算法、颁布者等。 使用mbedtls解析证书的步骤如下: 1. 调用`mbedtls_x509_crt_init`函数初始化证书结构。 2. 调用`mbedtls_x509_crt_parse`函数解析证书数据,并将解析后的结构存储在证书结构中。 3. 调用`mbedtls_x509_crt_info`函数打印证书的基本信息。 4. 如果需要验证证书的合法性,可以使用`mbedtls_x509_crt_verify_info`函数打印验证时的信息。 5. 调用`mbedtls_x509_crt_free`函数释放证书结构所占用的内存。 需要注意的是,mbedtls仅提供了对证书的解析功能,并不负责证书的验证。如果需要验证证书的合法性,还需要调用其他函数来实现。此外,证书的解析需要提供证书的数据,可以是DER或PEM格式的数据。 总之,mbedtls提供了方便的API来解析证书,并且适用于嵌入式设备。通过调用相关的函数,可以轻松地将证书数据解析为证书结构,并进行相应的操作。 ### 回答2: mbedtls是一个轻量级的加密库,它提供了解析和验证证书的功能。 证书是用于加密和认证通信的数字凭证,常用于HTTPS、SSH等加密协议中。解析证书是指从证书文件中提取出证书中的各个属性信息,例如有效期、颁发者、公钥等。 使用mbedtls解析证书通常包括以下步骤: 1. 加载证书:将证书文件加载到内存中,可以使用mbedtls_x509_crt结构表示证书。 2. 解析证书:使用mbedtls_x509_crt_parse函数解析证书。这个函数会解析出证书中的各个属性信息,并将其存储在mbedtls_x509_crt结构中。 3. 验证证书:使用mbedtls_x509_crt_verify函数对证书进行验证。这个函数会验证证书的合法性,包括检查证书链、有效期、颁发者等,确保证书的可信度。 4. 提取证书信息:使用mbedtls_x509_crt_info函数可以从解析好的证书结构中提取出各个属性信息,如有效期、颁发者、公钥等。可以通过访问mbedtls_x509_name结构获取颁发者信息,通过访问mbedtls_x509_time结构获取有效期信息,通过访问mbedtls_pk_context结构获取公钥信息等。 5. 清理资源:在使用完mbedtls_x509_crt结构后,需要使用mbedtls_x509_crt_free函数释放资源。 mbedtls库提供了简单易用的API来解析和验证证书,只需要几个简单的函数调用即可完成这些操作。它是一个可靠的工具,广泛应用于各个领域的加密通信中。 ### 回答3: mbedtls是一款轻量级的加密与安全通信库,可以用来进行SSL/TLS协议的实现。它不仅提供了SSL/TLS协议的功能,还包括了解析证书的能力。 在使用mbedtls解析证书时,首先我们需要获取证书的二进制数据。可以通过读取文件、网络传输或其他方式获取证书,并将其保存为二进制形式。 接下来,我们可以使用mbedtls_x509_crt结构体来存储解析后的证书信息。这个结构体包含了证书的各个字段,比如公钥、主题等。 使用mbedtls_x509_crt_parse函数可以将二进制证书数据解析为mbedtls_x509_crt结构体。这个函数接受三个参数:解析后的证书结构体、二进制证书数据和二进制数据的长度。函数执行成功后,我们就可以通过访问结构体的成员来获取证书的各个字段信息。 例如,可以通过访问x509_crt结构体的subject或issuer成员来获取证书的主题和颁发者信息。如果证书包含了公钥信息,我们可以通过访问x509_crt结构体中的公钥成员来获取公钥的相关信息。 需要注意的是,mbedtls解析证书时并不会验证证书的有效性,例如是否是受信任的颁发者颁发的证书。如果需要对解析后的证书进行验证,我们可以通过使用mbedtls_x509_crt_verify函数来完成。 总之,mbedtls提供了方便的接口来解析证书,并可以通过访问结构体的成员来获取证书的各个字段信息。它是一款简单易用的解析证书的工具,非常适合用于嵌入式设备等资源有限的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值