diff --git a/web/vesta/upload.php b/web/vesta/upload.php
new file mode 100644
index 000000000..e1f67837f
--- /dev/null
+++ b/web/vesta/upload.php
@@ -0,0 +1,78 @@
+parent.App.Pages.WEB_DOMAIN.setSSL('{$contents}', '{$type}');
+JS;
+}
+
+function handleUpload()
+{
+ if ($_FILES["upload-ssl"]["size"] < 20000) {
+ if ($_FILES["upload-ssl"]["error"] > 0) {
+ return show_form() . "Error occured. Please try to upload again";
+ }
+ else {
+ /*echo "Upload: " . $_FILES["file"]["name"] . "
";
+ echo "Type: " . $_FILES["file"]["type"] . "
";
+ echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
";
+ echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
";*/
+
+ $contents = file_get_contents($_FILES["upload-ssl"]['tmp_name']);
+ return show_form().pass_contents($contents);
+
+ /*if (file_exists("upload/" . $_FILES["file"]["name"])) {
+ echo $_FILES["file"]["name"] . " already exists. ";
+ }
+ else {
+ move_uploaded_file($_FILES["file"]["tmp_name"],
+ "upload/" . $_FILES["file"]["name"]);
+ echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
+ }*/
+ }
+ }
+ else {
+ return show_form() . "Filesize is too large. Please ensure you are uploading correct file";
+ }
+}
+
+//
+// functions
+function show_form()
+{
+ $type = $_GET['type'];
+ if (!in_array($type, array('key', 'cert'))) {
+ exit;
+ }
+
+ print <<
+HTML;
+}
+
+?>
\ No newline at end of file