使用自签名 SSL 证书调用本地服务的 Azure Web 应用程序

Azure Web App calling on-prem service with Self-Signed SSL Cert

我们有一个 Azure 网络应用需要通过 VPN 调用内部网络服务

我们已经配置了所有内容,但由于我们非生产内部服务器上的 Web 服务使用自签名证书,调用失败:

The remote certificate is invalid according to the validation procedure.

我们可以在本地将 .cer 导入 Trusted People。

如何在 Azure 上实现这一点?

您无法将 .cer 文件导入到 Azure Web 应用服务器。如果您可以修改您的代码,您可以实施变通方法,创建您自己的证书验证。一个例子:

    ServicePointManager.ServerCertificateValidationCallback += (
        object sender,
        X509Certificate certificate,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors) =>
    {
        if (sslPolicyErrors == SslPolicyErrors.None)
        {
            return true;
        }
        else
        {
            var myGoodCert = X509Certificate.CreateFromCertFile(Server.MapPath("~/path/to/mycert.cer"));
            return myGoodCert.Equals(certificate);  // compares issuer and serial number
        }          
    };

请记住将 .cer 文件与您的 Web 应用程序文件一起部署,或将其放置在可从您的 Web 应用程序访问的某个位置(Azure Blob 存储、sql 上的 Blob 等...)