From 2c64cc7d7d2471f52a7ce1dbd909564215504974 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 10 Nov 2016 17:38:58 -0500 Subject: [PATCH] add error handling when loading cert --- .../HttpServer/HttpListenerHost.cs | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs index d86e4da376..643d0c9560 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -196,17 +196,25 @@ namespace MediaBrowser.Server.Implementations.HttpServer return new WebSocketSharpListener(_logger, cert, _memoryStreamProvider, _textEncoding, _networkManager, _socketFactory, _cryptoProvider, new StreamFactory(), enableDualMode, GetRequest); } - public static ICertificate GetCert(string certificateLocation) + public ICertificate GetCert(string certificateLocation) { - X509Certificate2 localCert = new X509Certificate2(certificateLocation); - //localCert.PrivateKey = PrivateKey.CreateFromFile(pvk_file).RSA; - if (localCert.PrivateKey == null) + try { - //throw new FileNotFoundException("Secure requested, no private key included", certificateLocation); + X509Certificate2 localCert = new X509Certificate2(certificateLocation); + //localCert.PrivateKey = PrivateKey.CreateFromFile(pvk_file).RSA; + if (localCert.PrivateKey == null) + { + //throw new FileNotFoundException("Secure requested, no private key included", certificateLocation); + return null; + } + + return new Certificate(localCert); + } + catch (Exception ex) + { + Logger.ErrorException("Error loading cert from {0}", ex, certificateLocation); return null; } - - return new Certificate(localCert); } private IHttpRequest GetRequest(HttpListenerContext httpContext)