SAP Hana 服务层:无法为 SSL/TLS 安全通道建立信任关系

SAP Hana Service Layer : Could not establish trust relationship for the SSL/TLS secure channel

我正在尝试通过我的代码调用 SAP Hana 服务层,但我遇到了以下错误:所以任何人都可以帮助我解决这个问题。

错误 1:AuthenticationException:根据验证程序,远程证书无效。

错误 2: WebException:底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。

错误 3:HttpRequestException:发送请求时发生错误。

有关应用程序的更多详细信息 - 我已经在 .net 中创建了控制台应用程序并在服务器上执行 [Hana Server 是本地访问的,因为两个服务器都在LAN] Linux & Windows 服务器。

还有一件事 - 我的客户不打算为 SAP Hana 服务层购买域名和 SSL 证书,因为它会被我的应用程序内部使用。

问题是,当我通过 Postman 测试登录服务时,它工作正常,我也得到了会话详细信息,但同样的 url 无法通过我的代码工作,所以我还需要什么吗访问服务要做什么?

URL - https://172.17.100.35:50000/b1s/v1/Login

using (var client = new HttpClient())
{
var credentials = new { UserName = "admin", Password = "", "" };
var json = JsonConvert.SerializeObject(credentials);

var response = client.PostAsync(url),
                    new StringContent(json, Encoding.UTF8, "application/json")).Result;

if (response.IsSuccessStatusCode)
{
dynamic content = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result);

// Access variables from the returned JSON object
var appHref = content.links.applications.href;
}
}

您需要将此代码放在 postAsync

之前
 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

这避免了证书的验证。

如果未来的 google 员工在将请求发送到登录端点后收到 500 错误响应,请禁用 ExpectContinue。

client.DefaultRequestHeaders.ExpectContinue = false;

如果您使用的是自签名证书,则必须先接受它们。这可以通过浏览器将其添加到 windows 证书中来完成! 如果要进行跨域调用,则需要更改 b1s.config

vim /usr/sap/SAPBusinessOne/ServiceLayer/conf/b1s.conf

(...)
"CorsEnable": true,
 "CorsAllowedOrigins": "*"}

请注意在生产模式中使用 * <-<<<--