diff --git a/app/controllers/hosts_controller.rb b/app/controllers/hosts_controller.rb
index 50e0b65..c2b0f72 100644
--- a/app/controllers/hosts_controller.rb
+++ b/app/controllers/hosts_controller.rb
@@ -546,7 +546,10 @@ class HostsController < ApplicationController
 
   # this is required for template generation (such as pxelinux) which is not done via a web request
   def forward_request_url
-    @host.request_url = request.host_with_port if @host.respond_to?(:request_url)
+    if @host.respond_to?(:request_url)
+      @host.request_url = request.host_with_port
+      @host.protocol = request.protocol.sub(/:.*/,'') 
+    end
   end
 
 end
diff --git a/app/models/host_template_helpers.rb b/app/models/host_template_helpers.rb
index d70fdba..9f2b874 100644
--- a/app/models/host_template_helpers.rb
+++ b/app/models/host_template_helpers.rb
@@ -25,6 +25,6 @@ module HostTemplateHelpers
 
   #returns the URL for Foreman based on the required action
   def foreman_url(action = "provision")
-    url_for :only_path => false, :controller => "unattended", :action => action, :host => request_url
+    url_for :only_path => false, :controller => "unattended", :action => action, :host => request_url, :protocol => protocol
   end
 end
diff --git a/app/models/orchestration/tftp.rb b/app/models/orchestration/tftp.rb
index 0120fa1..6c120fa 100644
--- a/app/models/orchestration/tftp.rb
+++ b/app/models/orchestration/tftp.rb
@@ -2,7 +2,7 @@ module Orchestration::TFTP
   def self.included(base)
     base.send :include, InstanceMethods
     base.class_eval do
-      attr_accessor :request_url
+      attr_accessor :request_url, :protocol
       after_validation :validate_tftp, :queue_tftp
       before_destroy :queue_tftp_destroy
 
