aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/ServerMain.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Server/ServerMain.cs')
-rw-r--r--OpenSim/Server/ServerMain.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/OpenSim/Server/ServerMain.cs b/OpenSim/Server/ServerMain.cs
index 96b0a82..5e7e14f 100644
--- a/OpenSim/Server/ServerMain.cs
+++ b/OpenSim/Server/ServerMain.cs
@@ -30,6 +30,8 @@ using log4net;
30using System.Reflection; 30using System.Reflection;
31using System; 31using System;
32using System.Net; 32using System.Net;
33using System.Net.Security;
34using System.Security.Cryptography.X509Certificates;
33using System.Collections.Generic; 35using System.Collections.Generic;
34using OpenSim.Framework.Servers; 36using OpenSim.Framework.Servers;
35using OpenSim.Framework.Servers.HttpServer; 37using OpenSim.Framework.Servers.HttpServer;
@@ -51,12 +53,33 @@ namespace OpenSim.Server
51 new List<IServiceConnector>(); 53 new List<IServiceConnector>();
52 54
53 protected static PluginLoader loader; 55 protected static PluginLoader loader;
56 private static bool m_NoVerifyCertChain = false;
57 private static bool m_NoVerifyCertHostname = false;
58
59 public static bool ValidateServerCertificate(
60 object sender,
61 X509Certificate certificate,
62 X509Chain chain,
63 SslPolicyErrors sslPolicyErrors)
64 {
65 if (m_NoVerifyCertChain)
66 sslPolicyErrors &= ~SslPolicyErrors.RemoteCertificateChainErrors;
67
68 if (m_NoVerifyCertHostname)
69 sslPolicyErrors &= ~SslPolicyErrors.RemoteCertificateNameMismatch;
70
71 if (sslPolicyErrors == SslPolicyErrors.None)
72 return true;
73
74 return false;
75 }
54 76
55 public static int Main(string[] args) 77 public static int Main(string[] args)
56 { 78 {
57 ServicePointManager.DefaultConnectionLimit = 64; 79 ServicePointManager.DefaultConnectionLimit = 64;
58 ServicePointManager.Expect100Continue = false; 80 ServicePointManager.Expect100Continue = false;
59 ServicePointManager.UseNagleAlgorithm = false; 81 ServicePointManager.UseNagleAlgorithm = false;
82 ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
60 83
61 m_Server = new HttpServerBase("R.O.B.U.S.T.", args); 84 m_Server = new HttpServerBase("R.O.B.U.S.T.", args);
62 85
@@ -69,6 +92,10 @@ namespace OpenSim.Server
69 throw new Exception("Configuration error"); 92 throw new Exception("Configuration error");
70 } 93 }
71 94
95 m_NoVerifyCertChain = serverConfig.GetBoolean("NoVerifyCertChain", m_NoVerifyCertChain);
96 m_NoVerifyCertHostname = serverConfig.GetBoolean("NoVerifyCertHostname", m_NoVerifyCertHostname);
97
98
72 string connList = serverConfig.GetString("ServiceConnectors", String.Empty); 99 string connList = serverConfig.GetString("ServiceConnectors", String.Empty);
73 100
74 registryLocation = serverConfig.GetString("RegistryLocation","."); 101 registryLocation = serverConfig.GetString("RegistryLocation",".");