计算机网络 - 使用别名进行 SSL/TLS 连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27114397/article/details/88972568

使用别名进行 SSL/TLS 连接

概述

在某些应用场景,我们需要使用别名 CNAME 记录指向真正的域名与服务器进行通信,这样有这些好处:

  1. 可以在产品中固定使用这个别名,如果需要更改服务器,那么只需要在域名解析端更改 CNAME 记录指向的域名

域名解析

记录类型:
A 记录:将域名指向一个 IPv4 地址
CNAME 记录:将域名指向另一个域名,实现与被指向域名相同的访问效果

使用别名 SSL/TLS 认证

如果使用别名进行 SSL/TLS 连接,默认会进行服务器端认证,正常情况下,应该会出现以下错误:

The certificate Common Name (CN) does not match with the expected CN

这是因为在服务器端认证的时候,会比较证书中的域名和访问的域名是否一致。这时,我们使用的是别名进行访问的,所以出现域名不匹配的错误。

如何解决呢?

我们需要在进行 SSL/TLS 连接前,通过 DNS Name Server 获得别名所指向的域名,例如:
我使用 iot.infiniteyuan.com 指向 www.howsmyssl.com

在这里插入图片描述
在连接前,我们通过 DNS Name Server 获得别名所指向的域名:

在这里插入图片描述
这时,我们将其设置为需要比较的域名(mbedTLS 为例):

/*Hostname set here should match CN in server certificate */
if((ret = mbedtls_ssl_set_hostname(&ssl, WEB_SERVER)) != 0)

这样,就可以通过别名指向的域名完成服务器认证。

相关示例

猜你喜欢

转载自blog.csdn.net/qq_27114397/article/details/88972568