我正在尝试让我的Raspberry pi在Windows上运行IoT从我在内部服务器上的Web服务获取信息。 为实现这一目标,我在2015年的视觉工作室社区中使用了UWP。
上下文: 我有一个存储信息的SQL数据库,它被收集并由一个可读的 带有APIController的mvc,它将信息分组并发送出去。在我的UWP中,我使用了system.net HttpClient 获取信息
问题: 使用这段代码:
// httpClientHandler sends in my user arguments since the server is passwordprotected
using (var client = new HttpClient(httpClientHandler))
{
client.BaseAddress = new Uri("https://my.servers.dns");
var task = client.GetAsync("/pathTo/api/packet");
HttpResponseMessage response = task.Result;
var task2 = response.Content.ReadAsAsync<PacketInformation[]>();
data = task2.Result;
}
当我在连接到域的笔记本电脑上编译并运行我的程序时,它可以正常工作
当我在没有连接到域的IOT上编译和运行我的程序但是我使用
将ip添加到hosts文件中add-content C:\Windows\System32\drivers\etc\hosts "192.168.abc.def internal.server.DNSName"
它发出证书错误,代码返回“证书颁发机构无效或不正确”
有谁知道为什么会这样?它应该一直发送相同的信息。
答案 0 :(得分:1)
您需要将内部CA证书添加到raspberry pi的受信任根证书颁发机构商店。 (域名加入了PC会自动为你做这个)。
现在,您的raspberry pi将信任内部CA,以便使用TLS与网站进行通信。