diff --git a/Notesnook.API/Program.cs b/Notesnook.API/Program.cs index 6a38a71..583ec92 100644 --- a/Notesnook.API/Program.cs +++ b/Notesnook.API/Program.cs @@ -50,6 +50,13 @@ namespace Notesnook.API { options.Limits.MaxRequestBodySize = long.MaxValue; options.ListenAnyIP(Servers.NotesnookAPI.Port); + if (Servers.NotesnookAPI.IsSecure) + { + options.ListenAnyIP(443, listenerOptions => + { + listenerOptions.UseHttps(Servers.NotesnookAPI.SSLCertificate); + }); + } }); }); } diff --git a/Streetwriters.Common/Constants.cs b/Streetwriters.Common/Constants.cs index 1b9ff33..dacf075 100644 --- a/Streetwriters.Common/Constants.cs +++ b/Streetwriters.Common/Constants.cs @@ -48,8 +48,6 @@ namespace Streetwriters.Common public static string MESSAGEBIRD_ACCESS_KEY => Environment.GetEnvironmentVariable("MESSAGEBIRD_ACCESS_KEY"); // internal - public static string ORIGIN_CERT_PATH => Environment.GetEnvironmentVariable("ORIGIN_CERT_PATH"); - public static string ORIGIN_CERT_KEY_PATH => Environment.GetEnvironmentVariable("ORIGIN_CERT_KEY_PATH"); public static string MONGODB_CONNECTION_STRING => Environment.GetEnvironmentVariable("MONGODB_CONNECTION_STRING"); public static string MONGODB_DATABASE_NAME => Environment.GetEnvironmentVariable("MONGODB_DATABASE_NAME"); public static string S3_INTERNAL_SERVICE_URL => Environment.GetEnvironmentVariable("S3_INTERNAL_SERVICE_URL"); @@ -58,13 +56,19 @@ namespace Streetwriters.Common public static int NOTESNOOK_SERVER_PORT => int.Parse(Environment.GetEnvironmentVariable("NOTESNOOK_SERVER_PORT")); public static string NOTESNOOK_SERVER_HOST => Environment.GetEnvironmentVariable("NOTESNOOK_SERVER_HOST"); public static string NOTESNOOK_SERVER_DOMAIN => Environment.GetEnvironmentVariable("NOTESNOOK_SERVER_DOMAIN"); + public static string NOTESNOOK_CERT_PATH => Environment.GetEnvironmentVariable("NOTESNOOK_CERT_PATH"); + public static string NOTESNOOK_CERT_KEY_PATH => Environment.GetEnvironmentVariable("NOTESNOOK_CERT_PATH"); public static int IDENTITY_SERVER_PORT => int.Parse(Environment.GetEnvironmentVariable("IDENTITY_SERVER_PORT")); public static string IDENTITY_SERVER_HOST => Environment.GetEnvironmentVariable("IDENTITY_SERVER_HOST"); public static string IDENTITY_SERVER_DOMAIN => Environment.GetEnvironmentVariable("IDENTITY_SERVER_DOMAIN"); + public static string IDENTITY_CERT_PATH => Environment.GetEnvironmentVariable("IDENTITY_CERT_PATH"); + public static string IDENTITY_CERT_KEY_PATH => Environment.GetEnvironmentVariable("IDENTITY_CERT_KEY_PATH"); public static int SSE_SERVER_PORT => int.Parse(Environment.GetEnvironmentVariable("SSE_SERVER_PORT")); public static string SSE_SERVER_HOST => Environment.GetEnvironmentVariable("SSE_SERVER_HOST"); public static string SSE_SERVER_DOMAIN => Environment.GetEnvironmentVariable("SSE_SERVER_DOMAIN"); + public static string SSE_CERT_PATH => Environment.GetEnvironmentVariable("SSE_CERT_PATH"); + public static string SSE_CERT_KEY_PATH => Environment.GetEnvironmentVariable("SSE_CERT_KEY_PATH"); } } \ No newline at end of file diff --git a/Streetwriters.Common/Logger.cs b/Streetwriters.Common/Logger.cs index 72dfe4e..9b99356 100644 --- a/Streetwriters.Common/Logger.cs +++ b/Streetwriters.Common/Logger.cs @@ -18,13 +18,8 @@ along with this program. If not, see . */ using System; -using System.Collections.Generic; using System.IO; -using System.Linq; using System.Threading.Tasks; -using Streetwriters.Common.Enums; -using Streetwriters.Common.Interfaces; -using Streetwriters.Common.Models; namespace Streetwriters.Common { diff --git a/Streetwriters.Common/Servers.cs b/Streetwriters.Common/Servers.cs index 4c925ec..8f0ed2d 100644 --- a/Streetwriters.Common/Servers.cs +++ b/Streetwriters.Common/Servers.cs @@ -19,6 +19,7 @@ along with this program. If not, see . using System.Net.NetworkInformation; using System.Net.Sockets; +using System.Security.Cryptography.X509Certificates; #if !DEBUG using System; using System.Security.Cryptography.X509Certificates; @@ -28,10 +29,17 @@ namespace Streetwriters.Common { public class Server { + public Server(string originCertPath = null, string originCertKeyPath = null) + { + if (!string.IsNullOrEmpty(originCertPath) && !string.IsNullOrEmpty(originCertKeyPath)) + this.SSLCertificate = X509Certificate2.CreateFromPemFile(originCertPath, originCertKeyPath); + } + public int Port { get; set; } - public bool IsSecure { get; set; } public string Hostname { get; set; } public string Domain { get; set; } + public X509Certificate2 SSLCertificate { get; } + public bool IsSecure { get => this.SSLCertificate != null; } public override string ToString() { @@ -79,28 +87,24 @@ namespace Streetwriters.Common { Port = 4568, Hostname = HOST, - IsSecure = false, Domain = HOST }; -#else - private readonly static string HOST = "localhost"; - public readonly static X509Certificate2 OriginSSLCertificate = string.IsNullOrEmpty(Constants.ORIGIN_CERT_PATH) || string.IsNullOrEmpty(Constants.ORIGIN_CERT_KEY_PATH) ? null : X509Certificate2.CreateFromPemFile(Constants.ORIGIN_CERT_PATH, Environment.GetEnvironmentVariable(Constants.ORIGIN_CERT_KEY_PATH)); #endif - public static Server NotesnookAPI { get; } = new() + public static Server NotesnookAPI { get; } = new(Constants.NOTESNOOK_CERT_PATH, Constants.NOTESNOOK_CERT_KEY_PATH) { Domain = Constants.NOTESNOOK_SERVER_DOMAIN, Port = Constants.NOTESNOOK_SERVER_PORT, Hostname = Constants.NOTESNOOK_SERVER_HOST, }; - public static Server MessengerServer { get; } = new() + public static Server MessengerServer { get; } = new(Constants.SSE_CERT_PATH, Constants.SSE_CERT_KEY_PATH) { Domain = Constants.SSE_SERVER_DOMAIN, Port = Constants.SSE_SERVER_PORT, Hostname = Constants.SSE_SERVER_HOST, }; - public static Server IdentityServer { get; } = new() + public static Server IdentityServer { get; } = new(Constants.IDENTITY_CERT_PATH, Constants.IDENTITY_CERT_KEY_PATH) { Domain = Constants.IDENTITY_SERVER_DOMAIN, Port = Constants.IDENTITY_SERVER_PORT, diff --git a/Streetwriters.Identity/Program.cs b/Streetwriters.Identity/Program.cs index d1b6a6f..6e2af95 100644 --- a/Streetwriters.Identity/Program.cs +++ b/Streetwriters.Identity/Program.cs @@ -55,6 +55,13 @@ namespace Streetwriters.Identity { options.Limits.MaxRequestBodySize = long.MaxValue; options.ListenAnyIP(Servers.IdentityServer.Port); + if (Servers.IdentityServer.IsSecure) + { + options.ListenAnyIP(443, listenerOptions => + { + listenerOptions.UseHttps(Servers.IdentityServer.SSLCertificate); + }); + } }); }); } diff --git a/Streetwriters.Messenger/Program.cs b/Streetwriters.Messenger/Program.cs index 56e299c..000d211 100644 --- a/Streetwriters.Messenger/Program.cs +++ b/Streetwriters.Messenger/Program.cs @@ -49,6 +49,13 @@ namespace Streetwriters.Messenger { options.Limits.MaxRequestBodySize = long.MaxValue; options.ListenAnyIP(Servers.MessengerServer.Port); + if (Servers.MessengerServer.IsSecure) + { + options.ListenAnyIP(443, listenerOptions => + { + listenerOptions.UseHttps(Servers.MessengerServer.SSLCertificate); + }); + } }); }); }