【问题标题】:azure website ssl with SAN identifies as *.azurewebsites.net带有 SAN 的 azure 网站 ssl 标识为 *.azurewebsites.net
【发布时间】:2013-11-15 05:00:03
【问题描述】:

我正在尝试将网站移至 Azure(Azure 网站)。我把所有东西都搬走了,除了 ssl 不工作。出现的错误说

You attempted to reach [subdomain].[domain].com, but instead you actually reached a server identifying itself as *.azurewebsites.net ...

我认为这可能与我的证书有关。该证书是通过 GoDaddy 获得的 UCC 证书(多 SAN)。当我将站点从旧服务器移到 Azure 网站时,我没有重新输入证书。旧服务器使用 Parallels 进行管理。这是我为移动证书所做的:

我在旧服务器上登录了 Parallels。我打开 SSL 屏幕,在那里我可以看到证书的 4 个部分(csr、私钥、证书、CA 证书)。我复制了每个文本的文本(包括---Begin Certificate------End Certificate--- 行。编辑:私钥以---Begin RSA Private Key--- 开头并以---End RSA Private key 结尾),然后我粘贴数据以创建4 个.txt 文件。然后我重命名了 txt 文件,这样我就有了 4 个名为 CAcertificate.cercertificate.cerprivateKey.pemcert.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 Binding,并选择了那个子域,将它与我刚刚上传的证书匹配,然后选择“SNI SSL”。我保存了它,一切看起来都很好。

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

我设置了一个 CName 以从该子域转发到 Azure 网站。我还设置了一条 A 记录,以从该子域指向 Azure 网站的 IP 地址。除了 ssl 证书错误之外,该网站正在按我的预期启动。

我是否错误地生成了 .pfx 文件?我需要在 Azure 或我的域注册商中进行更改吗?我注意到我可以从平行面板下载一个 .pem 文件。它在一个文件中包含证书的所有 4 个部分。我不知道我能用它做什么。

【问题讨论】:

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

标签: ssl https openssl azure-web-app-service sni


【解决方案1】:

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

This answer 展示了如何使用适用于 Windows 的 OpenSSL 导出完整的证书链,包括私钥。

如果您的本地 Windows 机器中已经安装了证书,您可以关注 this guide 并确保选择

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多