2016-12-13 25 views
5

UnityゲームでSSL証明書の検証に問題があります。SSL証明書の検証.NET対Mono

私は単純なテストコード作られています

ServicePointManager.ServerCertificateValidationCallback += ServerCertificateValidationCallback; 


private static bool ServerCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
{ 
    return true; 
} 


public void Test() 
{ 
    WebClient w = new WebClient(); 
    string downloadString = w.DownloadString("https://encrypted.google.com/"); 
} 

を私は.NET 4.5およびユニティ(モノラル)でこれをで実施していると、問題はこの証明書は、.NET上で適切に検証されていることですが、中モノですよ:

SslPolicyErrors: RemoteCertificateChainErrors 
ChainStatus: 
    PartialChain 
    RevocationStatusUnknown 
    OfflineRevocation 

なぜこのようなことが起こりますか?それを処理するためにMonoに何かを追加する必要がありますか?

おかげ

答えて

0

問題がWhy doesn’t Mono includes root certificatesを参照してください、任意のルートCAまたはCRLを運ばないモノです。モバイルゲームを開発しようとするとcert load bugがあり、不完全なX509Chainを返し、Mono 3.6.0で修正されました。

公式のアドバイスによると、Unity2017へのアップデートユニティは、この厄介な問題を解決した組み込みのモノ4.5です。それ以外の場合は、install CA certs manuallyにする必要があります。