mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
Adding ssl support
Adding ssl support for "Out of Band" applications such as the remote admin module or Robust services
This commit is contained in:
@@ -52,6 +52,11 @@ namespace OpenSim.Framework
|
||||
return GetHttpServer(port,null);
|
||||
}
|
||||
|
||||
public static void AddHttpServer(BaseHttpServer server)
|
||||
{
|
||||
m_Servers.Add(server.Port, server);
|
||||
}
|
||||
|
||||
public static IHttpServer GetHttpServer(uint port, IPAddress ipaddr)
|
||||
{
|
||||
if (port == 0)
|
||||
|
||||
@@ -49,6 +49,12 @@ namespace OpenSim.Framework
|
||||
public string HttpSSLCN = "";
|
||||
public uint httpSSLPort = 9001;
|
||||
|
||||
// "Out of band" managemnt https
|
||||
public bool ssl_listener = false;
|
||||
public uint https_port = 0;
|
||||
public string cert_path = String.Empty;
|
||||
public string cert_pass = String.Empty;
|
||||
|
||||
public string MessagingURL = String.Empty;
|
||||
|
||||
public NetworkServersInfo()
|
||||
@@ -86,6 +92,15 @@ namespace OpenSim.Framework
|
||||
secureInventoryServer = config.Configs["Network"].GetBoolean("secure_inventory_server", true);
|
||||
|
||||
MessagingURL = config.Configs["Network"].GetString("messaging_server_url", string.Empty);
|
||||
|
||||
// "Out of band management https"
|
||||
ssl_listener = config.Configs["Network"].GetBoolean("https_listener",false);
|
||||
if( ssl_listener)
|
||||
{
|
||||
cert_path = config.Configs["Network"].GetString("cert_path",String.Empty);
|
||||
cert_pass = config.Configs["Network"].GetString("cert_pass",String.Empty);
|
||||
https_port = (uint)config.Configs["Network"].GetInt("https_port", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Reflection;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
@@ -72,6 +73,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||
protected uint m_port;
|
||||
protected uint m_sslport;
|
||||
protected bool m_ssl;
|
||||
private X509Certificate2 m_cert;
|
||||
protected bool m_firstcaps = true;
|
||||
protected string m_SSLCommonName = "";
|
||||
|
||||
@@ -123,6 +125,14 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||
}
|
||||
}
|
||||
|
||||
public BaseHttpServer(uint port, bool ssl, string CPath, string CPass) : this (port, ssl)
|
||||
{
|
||||
if (m_ssl)
|
||||
{
|
||||
m_cert = new X509Certificate2(CPath, CPass);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add a stream handler to the http server. If the handler already exists, then nothing happens.
|
||||
/// </summary>
|
||||
@@ -1683,6 +1693,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||
try
|
||||
{
|
||||
//m_httpListener = new HttpListener();
|
||||
|
||||
NotSocketErrors = 0;
|
||||
if (!m_ssl)
|
||||
{
|
||||
@@ -1702,6 +1713,9 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||
{
|
||||
//m_httpListener.Prefixes.Add("https://+:" + (m_sslport) + "/");
|
||||
//m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
|
||||
m_httpListener2 = CoolHTTPListener.Create(IPAddress.Any, (int)m_port, m_cert);
|
||||
m_httpListener2.ExceptionThrown += httpServerException;
|
||||
m_httpListener2.LogWriter = httpserverlog;
|
||||
}
|
||||
|
||||
m_httpListener2.RequestReceived += OnRequest;
|
||||
|
||||
Reference in New Issue
Block a user