【发布时间】: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.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 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