带有SAN的azure网站ssl标识为*.azurewebsites.net

带有SAN的azure网站ssl标识为*.azurewebsites.net,ssl,https,openssl,azure-web-app-service,sni,Ssl,Https,Openssl,Azure Web App Service,Sni,我正在尝试将网站移动到Azure(Azure网站)。我已经移动了所有东西,除了ssl不工作。出现的错误是 您试图访问[subdomain].[domain].com,但实际上您访问了一个服务器,该服务器标识为*.azurewebsites.net… 我想这可能与我的证书有关。该证书是通过GoDaddy的UCC证书(多SAN)。当我将站点从旧服务器移动到Azure网站时,我没有重新设置证书密钥。旧服务器是使用并行机管理的。以下是我为移动证书所做的操作: 我在旧服务器上登录了Parallels。我打

我正在尝试将网站移动到Azure(Azure网站)。我已经移动了所有东西,除了ssl不工作。出现的错误是

您试图访问[subdomain].[domain].com,但实际上您访问了一个服务器,该服务器标识为*.azurewebsites.net…

我想这可能与我的证书有关。该证书是通过GoDaddy的UCC证书(多SAN)。当我将站点从旧服务器移动到Azure网站时,我没有重新设置证书密钥。旧服务器是使用并行机管理的。以下是我为移动证书所做的操作:

我在旧服务器上登录了Parallels。我打开SSL屏幕,可以看到证书的4个部分(csr、私钥、证书、CA证书)。我复制了每一行的文本(包括
--开始证书--
--结束证书--
行)。编辑:私钥以
--开始RSA私钥--
开始,以
--结束RSA私钥--
结束),我粘贴了数据以创建4.txt文件。然后我重命名了txt文件,这样我有4个文件,分别名为
CAcertificate.cer
certificate.cer
privateKey.pem
,和
cert.cer
。它们都保存在c:\目录(根目录)中

然后,我启动OpenSSL并运行以下命令:

pkcs12-export-in c:\certificate.cer-inkey c:\privateKey.pem-out c:\certificate.pfx-certfile c:\CAcertificate.cer

我输入了两次密码,然后弹出一个certificate.pfx文件

我将该文件上载到我的Azure网站。UCC证书适用于4个子域。我的Azure网站只设置了其中一个子域作为域名。上传完文件后,我去了
SSL绑定
,选择了那个子域,将它与我刚刚上传的证书匹配,然后选择了“SNI-SSL”。我保存了它,一切看起来都很好

不幸的是,当我浏览到子域时,我得到了我在开头列出的错误

我已经设置了一个CName,可以从该子域转发到Azure网站。我还设置了一个A记录,从该子域指向Azure网站的IP地址。除了ssl证书错误之外,该站点正在正常运行


我是否错误地生成了.pfx文件?在Azure或我的域注册器中是否有需要更改的内容?我注意到我可以从parallels面板下载一个.pem文件。它在一个文件中包含证书的所有4个部分。我不知道该怎么办。

缺少根证书颁发机构或中间证书颁发机构可能导致此行为,如中所述(由Microsoft MVP编写)

演示如何使用OpenSSL for Windows导出包含私钥的完整证书链

如果证书已安装在本地Windows计算机中,则可以遵循并确保选择

  • 是,导出私钥
  • 如果可能,请在证书路径中包含所有证书

这将创建一个.pfx文件,其中包含您的证书、其私钥以及所有中间CA和根CA。

您确定私钥包含正确吗?您的证书路径中是否缺少任何中间/根CA?您是否介意添加“with SAN”或类似于您的问题标题的内容?关于私钥,我遵循了上述过程两次。我通过制作at.txt文件并从旧服务器粘贴“私钥”来包含它。关于中间/根CA,证书在旧服务器上运行良好。我不明白该区域会发生什么变化,使其无法工作……如果证书路径中存在未知的根或中间CA,则azure网站的IIS/SSL端点处理可能会(正确地)注意到这一问题,而不会使用它。您可以在Windows下使用certmgr.msc安装和检查您的证书及其路径。它还允许导出包含路径中所有证书的.pfx。我已将证书安装到本地计算机。我打开certmgr.msc,找到了证书。当我查看“证书路径”时,我看到以下内容:
Go Daddy Class 2证书颁发机构
->
Go Daddy安全证书颁发机构
->
www.[domain].com
。在详细信息中,在
Subject Alternative Name
下,我看到输入的每个子域都是
DNS=[subdomain].[domain].com