diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php
index a8719fc7a3d3454aaadd9b963ca7af03e1e0b5f0..8848f85cf9d04b2b711795f67e646d66e0bad8ad 100644
--- a/apps/files_external/ajax/addRootCertificate.php
+++ b/apps/files_external/ajax/addRootCertificate.php
@@ -2,25 +2,21 @@
 
 OCP\JSON::checkAppEnabled('files_external');
 
-$view = \OCP\Files::getStorage("files_external");
-$from = $_FILES['rootcert_import']['tmp_name'];
-$path = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("").'uploads/';
-if(!file_exists($path)) mkdir($path,0700,true);
-$to = $path.$_FILES['rootcert_import']['name'];
-move_uploaded_file($from, $to);
+$fh = fopen($_FILES['rootcert_import']['tmp_name'], 'r');
+$data = fread($fh, filesize($_FILES['rootcert_import']['tmp_name']));
+fclose($fh);
+
+$view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/files_external/uploads');
+if (!$view->file_exists('')) $view->mkdir('');
 
 //check if it is a PEM certificate, otherwise convert it if possible
-$fh = fopen($to, 'r');
-$data = fread($fh, filesize($to));
-fclose($fh);
-if (!strpos($data, 'BEGIN CERTIFICATE')) {
-	$pem = chunk_split(base64_encode($data), 64, "\n");
-	$pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
-	$fh = fopen($to, 'w');
-	fwrite($fh, $pem);
-	fclose($fh);
+if (!strpos($data, 'BEGIN CERTIFICATE')) {
+	$data = chunk_split(base64_encode($data), 64, "\n");
+	$data = "-----BEGIN CERTIFICATE-----\n".$data."-----END CERTIFICATE-----\n";
 }
 
+$view->file_put_contents($_FILES['rootcert_import']['name'], $data);
+
 OC_Mount_Config::createCertificateBundle();
 
 header("Location: settings/personal.php");