I have a problem with certificate verification in unity. Im uses the .Net class HttpWebResponse to make requests and provides a ServicePointManager.ServerCertificateValidationCallback callback function.
The certificate is signed with authority and works fine in a web browser.
Status check failed: X509ChainStatusFlags.PartialChain X509ChainStatusFlags.RevocationStatusUnknown X509ChainStatusFlags.OfflineRevocation
The problem, as I see it, is the empty root certificate stores and the empty CRL list. I opened the source code for Mono and found that this data should be obtained from the X509Store, but somehow it does not contain any Root or CRL certificates.
I need to perform the correct verification of the certificate, and not just skip it by returning true in the ServerCertificateValidationCallback or hardcode fingerprint of the certificates, and for this I need to provide all the necessary data.
Assuming I know the authority of Root, I can add it to the repository when the application starts. But this does not work with CRL. Platform - Android \ IOS.
Question: how can I force unity to install Roots and CRL?
source share