Unity(Mono)关于Https的一个坑

使用HttpWebRequest写的底层网络模块,证书部分全部返回True,调用微信公众号(小程序)二维码,以及小程序二维码,报错如下:

System.Net.WebException: Error: TrustFailure (The authentication or decryption has failed.) ---> System.IO.IOException: The authentication or decryption has failed. ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a
at Mono.Security.Protocol.Tls.RecordProtocol.EndReceiveRecord (System.IAsyncResult asyncResult) [0x00037] in <eb1224ae7b184cd09343d47f8a05481b>:0
at Mono.Security.Protocol.Tls.SslClientStream.SafeEndReceiveRecord (System.IAsyncResult ar, System.Boolean ignoreEmpty) [0x00000] in <eb1224ae7b184cd09343d47f8a05481b>:0
at Mono.Security.Protocol.Tls.SslClientStream.NegotiateAsyncWorker (System.IAsyncResult result) [0x00071] in <eb1224ae7b184cd09343d47f8a05481b>:0
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (System.IAsyncResult result) [0x00032] in <eb1224ae7b184cd09343d47f8a05481b>:0
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (System.IAsyncResult asyncResult) [0x0000c] in <eb1224ae7b184cd09343d47f8a05481b>:0
--- End of inner exception stack trace ---

解决方案:

CMD 中 D:\Program Files\Unity_2017_3_1_f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5\mozroots.exe --import --sync

对应路径自己改成自己的,把证书导入,就可以了...,老版本不成功的可能要替换mozroots的版本

为什么Windows下没问题:好像是因为Windows中自带证书...

Mono下的原因参考如下:

原因参考:https://www.mono-project.com/docs/faq/security/

 

Unity中的mono是一种跨平台解析和运行C#代码的工具,它负责管理C#代码所占用的内存,也被称为mono内存。通过monoUnity可以在不同的平台上运行相同的游戏逻辑代码。C#代码通过mono解析执行,并由mono分配和管理内存。 Unity之所以能够跨平台,是因为它使用了通用中间语言(CIL)。CIL是一种面向对象的语言,它与具体CPU中的寄存器无关,基于堆栈操作。CIL代码在Mono运行时(虚拟机)上运行,可以在任何支持CLI的平台上运行,包括.NET和Mono。这使得Unity可以实现跨平台的能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Unity3D - Unity游戏Mono内存管理与泄漏](https://blog.csdn.net/PAL717/article/details/78655299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Mono简介、Unity的跨平台、Unity程序从编辑到运行。](https://blog.csdn.net/Michaelia_hu/article/details/88198247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值