我发现与Azure SQL Server相关的SSL证书验证会产生一些奇怪的结果。
我有一个与SQL Server建立安全连接的应用程序。当我在本地PC上运行应用程序时,服务器返回的证书将返回以下alt DNS名称:
DNS:northcentralus1-a.control.database.windows.net, DNS:*.northcentralus1-a.control.database.windows.net, DNS:management.northcentralus1-a.control.database.windows.net, DNS:management.northcentralus.control.database.windows.net, DNS:admin.northcentralus1-a.control.database.windows.net, DNS:*.database.windows.net, DNS:*.secondary.database.windows.net, DNS:*.provisioning.database.windows.net
这就是我所期望的,它与我在*.database.windows.net
下要与之交谈的服务器相匹配。
但是,当我将相同的应用程序部署到Azure时,SQL Server似乎返回一个具有以下alt DNS名称的不同证书:
DNS:tr1.northcentralus1-a.worker.database.windows.net, DNS:*.tr1.northcentralus1-a.worker.database.windows.net
这些名称与我尝试与之交谈的服务器不匹配,因此我的客户端应用程序拒绝连接,因为它是不受信任的主机。
输入了类似的问题here,但接受的解决方案是始终信任证书而不检查它。我的问题不同,我想验证证书,而不是盲目信任证书。
以下是具体问题,总结如下:
Azure SQL Server是否提供无效证书?
假设它提供的证书无效,我可以配置Azure SQL Server以提供有效的证书吗?
假设它提供的证书无效,Azure SQL Server是否正在计划纠正行为,或者我们是否应该在不检查的情况下永久信任证书?