diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-19 01:42:31 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-19 01:42:31 -0500 |
| commit | e8ab7fb7b59ddc66fdd895076cdd4350e0f18576 (patch) | |
| tree | cb6b7312fd6816b963e931288c464ef152010701 /MediaBrowser.Server.Startup.Common/ApplicationHost.cs | |
| parent | df56b1ec8a008933a9e20d6a3cd9b05580d143eb (diff) | |
update translations
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/ApplicationHost.cs')
| -rw-r--r-- | MediaBrowser.Server.Startup.Common/ApplicationHost.cs | 45 |
1 files changed, 36 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 4e05bceff6..5ce23fa370 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -2,6 +2,7 @@ using MediaBrowser.Common; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Events; +using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Implementations; using MediaBrowser.Common.Implementations.ScheduledTasks; using MediaBrowser.Common.IO; @@ -757,6 +758,8 @@ namespace MediaBrowser.Server.Startup.Common SyncManager.AddParts(GetExports<ISyncProvider>()); } + private string CertificatePath { get; set; } + private IEnumerable<string> GetUrlPrefixes() { var prefixes = new List<string> @@ -764,7 +767,7 @@ namespace MediaBrowser.Server.Startup.Common "http://+:" + ServerConfigurationManager.Configuration.HttpServerPortNumber + "/" }; - if (!string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePath)) + if (!string.IsNullOrWhiteSpace(CertificatePath)) { prefixes.Add("https://+:" + ServerConfigurationManager.Configuration.HttpsPortNumber + "/"); } @@ -777,16 +780,36 @@ namespace MediaBrowser.Server.Startup.Common /// </summary> private void StartServer() { - try + if (string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePath)) { - if (ServerConfigurationManager.Configuration.EnableHttps) + // Generate self-signed cert + var certHost = GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns); + var certPath = Path.Combine(ServerConfigurationManager.ApplicationPaths.ProgramDataPath, "ssl", "cert_" + certHost.GetMD5().ToString("N") + ".pfx"); + + if (!File.Exists(certPath)) { - NetworkManager.GenerateSelfSignedSslCertificate( - ServerConfigurationManager.Configuration.CertificatePath, - GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns)); + Directory.CreateDirectory(Path.GetDirectoryName(certPath)); + + try + { + NetworkManager.GenerateSelfSignedSslCertificate(certPath, certHost); + CertificatePath = certHost; + } + catch (Exception ex) + { + Logger.ErrorException("Error creating ssl cert", ex); + } } + } + else + { + // Custom cert + CertificatePath = ServerConfigurationManager.Configuration.CertificatePath; + } - ServerManager.Start(GetUrlPrefixes(), ServerConfigurationManager.Configuration.CertificatePath); + try + { + ServerManager.Start(GetUrlPrefixes(), CertificatePath); } catch (Exception ex) { @@ -826,6 +849,11 @@ namespace MediaBrowser.Server.Startup.Common requiresRestart = true; } + if (!string.Equals(CertificatePath, ServerConfigurationManager.Configuration.CertificatePath, StringComparison.OrdinalIgnoreCase)) + { + requiresRestart = true; + } + if (requiresRestart) { NotifyPendingRestart(); @@ -1206,8 +1234,7 @@ namespace MediaBrowser.Server.Startup.Common try { - Uri uri = new Uri(externalDns); - return uri.Host; + return new Uri(externalDns).Host; } catch (Exception e) { |
