- Home /
Issue with TLS and X509 authentication
Hi i have some issue connecting to my server that is secured with SSL. I have this working in Unity 2018.1 and set to .Net 4.x but when i updated to 2018.2.0 or 2018.2.1 it does not work anymore.
Error message: System.AggregateException: One or more errors occurred. ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Mono.Security.Interface.TlsException: Handshake failed - error code: UNITYTLS_INTERNAL_ERROR, verify result: UNITYTLS_X509VERIFY_FATAL_ERROR...
public bool MyRemoteCertificateValidationCallback(System.Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
bool isOk = true;
// If there are errors in the certificate chain, look at each error to determine the cause.
if (sslPolicyErrors != SslPolicyErrors.None) {
for (int i = 0; i < chain.ChainStatus.Length; i++) {
if (chain.ChainStatus[i].Status != X509ChainStatusFlags.RevocationStatusUnknown) {
chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
chain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 1, 0);
chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags;
bool chainIsValid = chain.Build((X509Certificate2)certificate);
if (!chainIsValid) {
isOk = false;
}
}
}
}
return isOk;
}
public static FtpWebRequest GetFtpRequest(string directory) {
ServicePointManager.ServerCertificateValidationCallback = AssetBundleManager.Instance.MyRemoteCertificateValidationCallback;
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create("ftps://" + AssetBundleManager.Instance.ipAdress + "/" + directory);
ftpRequest.EnableSsl = true;
ftpRequest.Credentials = new NetworkCredential(AssetBundleManager.Instance.username, AssetBundleManager.Instance.password);
return ftpRequest;
}
The error message is thrown when i try to get a response using:
FtpWebResponse response = (FtpWebResponse)ftpDirectoryRequest.GetResponse();
I had a similar issue in 2017.2 before i set the api compability level to .NET 4.x but then managed to get it working. Does anyone else have issues with this or does anyone see something wrong in my code?
We have similar issue (Unity 2018.2.0f2, .NET 4.x) but with server accepting WebSocket clients (using TLS).
Same here :/ We have this issue when we try to integrate Crashlytics for Unity: https://docs.fabric.io/unity/crashlytics/installation.html
Unity 2018.2.6f1, .NET 4.x
We have similar issue with $$anonymous$$ySQL 8 and all it's dll's. I have reported the bug inside unity as a separate project.
Like Ziron999 said the similar reported issue is at https://answers.unity.com/questions/1553564/problem-with-sql-in-unity-20182.html
Your answer
Follow this Question
Related Questions
Issue With System.Net when Using FTP 1 Answer
Making a RESTful application with Unity and Azure 0 Answers
Server certificates on Android question 1 Answer
FTP Upload Files 2 Answers
How can I add a certificate to the Mono Trust store? 1 Answer