2016-12-13 11 views
5

मुझे अपने एकता गेम में SSL प्रमाणपत्र को सत्यापित करने में समस्या है।एसएसएल प्रमाण पत्र सत्यापन .NET बनाम मोनो

मैं साधारण परीक्षण कोड बना दिया है जो:

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 लागू किया और एकता (मोनो) में है और यह कि इस प्रमाणपत्र नेट पर ठीक से मान्य है समस्या है, लेकिन में मोनो मुझे मिल रहा है:

SslPolicyErrors: RemoteCertificateChainErrors 
ChainStatus: 
    PartialChain 
    RevocationStatusUnknown 
    OfflineRevocation 

ऐसा क्यों होता है? क्या मुझे इसे संभालने के लिए अतिरिक्त रूप से मोनो में कुछ सेट करना चाहिए?

धन्यवाद

उत्तर

0

समस्या यह है मोनो किसी भी रूट सीए या सीआरएल ले नहीं करता है, Why doesn’t Mono includes root certificates देखते हैं। और यदि आप मोबाइल गेम विकसित करने का प्रयास करते हैं, तो cert load bug था, जो अपूर्ण X509Chain लौटाता था और मोनो 3.6.0 में तय किया गया था।

आधिकारिक सलाह के अनुसार, यूनिटी2017 को एकता अपडेट करें मोनो 4.5 में निर्मित होगा जो इस परेशान समस्या को हल करता है। अन्यथा आपको install CA certs manually हो सकता है।

संबंधित मुद्दे