- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何使用特定证书从 Azure Function 中调用 HTTPS 站点来建立 HTTPS 连接?
我有一个 Azure 函数,需要使用证书与远程服务器进行通信。远程服务器是一家银行。
安装证书并在本地运行 Azure Function Emulator 将启动并建立连接。
上传到 Azure 我收到此消息
The SSL connection could not be established, see inner exception. Authentication failed, see inner exception.
我尝试将证书包含在 Azure Function SLL 下我将证书链中的所有证书安装为公共(public)证书 (.cer)和私有(private)证书 (.pfx)
尝试通过指纹访问证书失败。
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
try
{
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = store.Certificates;
foreach (var certificate2 in certificates)
{
if (certificate2.Thumbprint.ToLower() == thumbprint.ToLower())
{
return certificate2;
}
}
}
在这种情况下,我尝试太循环,而不是使用内置函数查找证书来使用 Tumbprint 查找证书
当这不起作用时,我提供了证书(.pfx)作为文件。
获取证书有效。
certificate = new X509Certificate2(filename, password, X509KeyStorageFlags.MachineKeySet);
Azure 函数需要 X509KeyStorageFlags.MachineKeySet,但运行本地 Azure 函数模拟器时不需要
RestSharp 正在 Azure Function Emulator 中运行
var client = new RestClient(BaseUrl)
{
Timeout = 180000,
ClientCertificates = new X509CertificateCollection() { cert }
};
client.AddDefaultHeader("Content-type", "application/json");
var request = new RestRequest(Query, Method.POST);
request.Parameters.Clear();
request.AddParameter("application/json", jsonSwish, ParameterType.RequestBody);
IRestResponse response = await client.ExecuteTaskAsync(request);
我收到“无法建立 SSL 连接...”
我在创建客户端之前添加了这个,但它没有解决问题
ServicePointManager.Expect100Continue = true;
ServicePointManager.DefaultConnectionLimit = 9999;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
然后,我创建了一个简单的 PHP,它在输入中包含 HTTP,并使用 CURL 和所需的证书作为 CURL 的参数创建 HTTPS 输出。这可行,但是一个丑陋的解决方案。
如何使用特定证书从 Azure Function 中调用 HTTPS 站点来建立 HTTPS 连接?
最佳答案
根据描述,Web 应用程序中的代码向使用仅在您的网络中受信任的证书的后端服务发出 HTTPS 请求。由于 Web 应用程序服务器没有受信任的根证书,因此它会失败并出现“不受信任”错误。如果我误解了配置,请告诉我。
但是,以下信息基于该特定假设。
不幸的是,出于安全考虑,无法将证书导入到 Azure Web Apps 中的受信任根存储中。解决此错误的唯一选择是在应用程序代码中处理验证,类似于此处所述:https://stackoverflow.com/a/34204814 。我们过去已经成功地使用了这些步骤,例如:
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) =>
{
if (sslPolicyErrors == SslPolicyErrors.None)
{
return true;
}
var certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);
var certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, "THUMBPRINT", false);
if (certCollection.Count > 0)
{
var validCertificate = certCollection[0];
var passedCert = new X509Certificate2(certificate);
certStore.Close();
return validCertificate.Equals(passedCert);
}
certStore.Close();
return false;
};
关于c# - 在 Azure 函数中使用 RestSharp 调用 HTTPS 会给出 "The SSL connection could not be established",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55701263/
我正在使用 RestSharp 访问 RubyOnRails API。您可能知道,RoR 喜欢参数名称采用 model_name[property] 形式。另一方面,RestSharp 不喜欢它。 F
我刚刚下载了 DropNet 来尝试使用它。我在尝试执行 new DropNetClient 时遇到异常: Method not found: System.String RestSharp.Rest
当我尝试使用 nuget 将 RestSharp 添加到可移植类库项目时,我得到以下信息: Could not install package 'RestSharp 104.1'. You are t
我有以下代码片段,它一直在我身上失败: ServicePointManager.ServerCertificateValidationCallback += (o, c, ch, er) => tru
当我像这样在 RestSharp 中发出请求时: var response = client.Execute(request); 我收到以下错误: "Unable to cast object of
有什么方法可以从 RestSharp RestRequest 中删除 header 吗? 我在项目页面中偶然发现了这个问题,但看不到它曾经被应用过: https://github.com/restsh
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在使用 RestSharp 将信息发送到 API。我想记录发送到此 API 的 XML,以便稍后进行调试。 我想做这样的事情: var request = new RestRequest(reso
下面是使用标准 HttpWebRequest 和 HttpWebResponse 完成的 POST 请求。基本上它发布带有一些参数的二进制文件。 我怎样才能用 RestSharp 做同样的事情? 来源
目前无法解决问题:无法将类型为“RestSharp.JsonArray”的对象转换为类型为“System.Collections.Generic.IDictionary”2[System.String
我使用了在 ASP.NET Framework version 4.5.1 上运行的 MVC Web 应用程序. 我做了 nopcommercePlugin .我正在将版本 3.4 升级到 3.5 更
我用过restsharp对于我的一些 .net 项目。我发现它对于从网络服务获取 Json 数据并将它们转换为 .net 对象非常有用。我需要一个类似的java框架。我想用它来为我的 android
最近我在用 RestSharp消耗我的 Restful 资源。并期望在服务器和客户端之间与 JSon 交换数据。下面是我的 C# 代码。 var client = new RestSharp.Rest
我的应用程序要求是使用签名程序集。我使用 Visual Studio 2012 命令工具签署了 RestSharp 程序集。应用程序构建成功,但运行时出现以下错误: Could not load fi
在特定情况下,我需要能够在请求/响应中禁用压缩。 使用 Firefox RestClient 我能够将一些 xml 发布到 Web 服务并使用单个 header 参数“Accept-Encoding”
我正在尝试使用 RestSharp(我的第一次)。我正在使用他们的示例: var client = new RestClient( "http://example.com" ); var reques
我查看了有关此问题的其他问题,但似乎没有任何内容可以回答我的问题。希望因为我的问题/问题似乎是一个简单的解决方案。 我使用 nuget 安装了 RestSharp。 using RestSharp;
我正在尝试使用 RestSharp 编码示例来连接到 MailGun。在下面的代码中,请参阅: client.Authenticator = new HttpBasicAuthenticator("X
我正在使用 RestSharp。我使用 XML 作为我的数据的传输编码,但后来我 had problems有了这个,所以我转而使用 JSON。现在我也遇到了问题! 在我尝试传递一个包含字节数组 (*)
我刚刚更新了在 ASP.NET Framework 4.5.2 版上运行的 MVC Web 应用程序。我正在使用 Twilio 发送 SMS 消息: var twilio = new TwilioRe
我是一名优秀的程序员,十分优秀!