diff --git a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java index 663ab4a7fc0..f72a5634053 100755 --- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java +++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java @@ -178,6 +178,7 @@ public class DownloadMonitorImpl extends ManagerBase implements DownloadMonitor protected AccountManager _accountMgr; private Boolean _sslCopy = new Boolean(false); + String _ssvmUrlDomain; private String _copyAuthPasswd; private String _proxy = null; protected SearchBuilder ReadyTemplateStatesSearch; @@ -198,11 +199,8 @@ public class DownloadMonitorImpl extends ManagerBase implements DownloadMonitor _sslCopy = Boolean.parseBoolean(configs.get("secstorage.encrypt.copy")); _proxy = configs.get(Config.SecStorageProxy.key()); - String cert = configs.get("secstorage.ssl.cert.domain"); - if (!"realhostip.com".equalsIgnoreCase(cert)) { - s_logger.warn("Only realhostip.com ssl cert is supported, ignoring self-signed and other certs"); - } - + _ssvmUrlDomain = configs.get("secstorage.ssl.cert.domain"); + _copyAuthPasswd = configs.get("secstorage.copy.password"); _agentMgr.registerForHostEvents(new DownloadListener(this), true, false, false); @@ -318,9 +316,15 @@ public class DownloadMonitorImpl extends ManagerBase implements DownloadMonitor String hostname = ipAddress; String scheme = "http"; if (_sslCopy) { - hostname = ipAddress.replace(".", "-"); - hostname = hostname + ".realhostip.com"; - scheme = "https"; + hostname = ipAddress.replace(".", "-"); + scheme = "https"; + + // Code for putting in custom certificates. + if(_ssvmUrlDomain != null && _ssvmUrlDomain.length() > 0){ + hostname = hostname + "." + _ssvmUrlDomain; + }else{ + hostname = hostname + ".realhostip.com"; + } } return scheme + "://" + hostname + "/copy/SecStorage/" + dir + "/" + path; } diff --git a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java index 77f0d209918..31f3e74442a 100755 --- a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java +++ b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java @@ -106,6 +106,7 @@ public class UploadMonitorImpl extends ManagerBase implements UploadMonitor { private String _name; private Boolean _sslCopy = new Boolean(false); + private String _ssvmUrlDomain; private ScheduledExecutorService _executor = null; Timer _timer; @@ -329,8 +330,14 @@ public class UploadMonitorImpl extends ManagerBase implements UploadMonitor { String scheme = "http"; if (_sslCopy) { hostname = ipAddress.replace(".", "-"); - hostname = hostname + ".realhostip.com"; scheme = "https"; + + // Code for putting in custom certificates. + if(_ssvmUrlDomain != null && _ssvmUrlDomain.length() > 0){ + hostname = hostname + "." + _ssvmUrlDomain; + }else{ + hostname = hostname + ".realhostip.com"; + } } return scheme + "://" + hostname + "/userdata/" + uuid; } @@ -347,10 +354,7 @@ public class UploadMonitorImpl extends ManagerBase implements UploadMonitor { final Map configs = _configDao.getConfiguration("ManagementServer", params); _sslCopy = Boolean.parseBoolean(configs.get("secstorage.encrypt.copy")); - String cert = configs.get("secstorage.secure.copy.cert"); - if ("realhostip.com".equalsIgnoreCase(cert)) { - s_logger.warn("Only realhostip.com ssl cert is supported, ignoring self-signed and other certs"); - } + _ssvmUrlDomain = configs.get("secstorage.ssl.cert.domain"); _agentMgr.registerForHostEvents(new UploadListener(this), true, false, false); String cleanupInterval = configs.get("extract.url.cleanup.interval");