private void SetCertificateOptions(ServiceHost serviceHost)
{
Trace.Information("Loading certificate from {0}", _certificatePemFile);
if (!File.Exists(_certificatePemFile))
{
Trace.Critical("Unable to load server certificate from '{0}'.", _certificatePemFile);
throw new FileNotFoundException("The server certificate could not be found.", _certificatePemFile);
}
X509Certificate2 certificate = new X509Certificate2().
LoadFromPemFile(_certificatePemFile);
serviceHost.Credentials.ServiceCertificate.Certificate = certificate;
serviceHost.Credentials.ClientCertificate.Authentication.CertificateValidationMode =
X509CertificateValidationMode.Custom;
serviceHost.Credentials.ClientCertificate.Authentication.CustomCertificateValidator =
new ServerX509CertificateValidator(_caCertificate);
serviceHost.Credentials.ClientCertificate.Authentication.RevocationMode =
X509RevocationMode.NoCheck;
}