版本: Unity 6 (6000.0)
语言英语
  • C#

CertificateHandler.ValidateCertificate

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的建议,但我们会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

protected bool ValidateCertificate(byte[] certificateData);

参数

certificateData PEM 或 DER 格式的证书数据。如果证书数据包含多个证书,第一个证书是叶子证书。

返回值

bool true 如果应接受证书,false 如果不接受。

描述

回调函数,针对远程服务器发送的每个叶子证书调用。

覆盖此方法以实现自定义证书验证方案。

using UnityEngine.Networking;
using System.Security.Cryptography.X509Certificates;

// Based on https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning#.Net class AcceptAllCertificatesSignedWithASpecificKeyPublicKey : CertificateHandler { // Encoded RSAPublicKey private static string PUB_KEY = "30818902818100C4A06B7B52F8D17DC1CCB47362" + "C64AB799AAE19E245A7559E9CEEC7D8AA4DF07CB0B21FDFD763C63A313A668FE9D764E" + "D913C51A676788DB62AF624F422C2F112C1316922AA5D37823CD9F43D1FC54513D14B2" + "9E36991F08A042C42EAAEEE5FE8E2CB10167174A359CEBF6FACC2C9CA933AD403137EE" + "2C3F4CBED9460129C72B0203010001";

protected override bool ValidateCertificate(byte[] certificateData) { X509Certificate2 certificate = new X509Certificate2(certificateData); string pk = certificate.GetPublicKeyString(); if (pk.Equals(PUB_KEY)) return true;

// Bad dog return false; } }