File: //usr/local/share/hostingplatform/scripts/setDomainPrivateKey
#!/usr/bin/env php
<?php
require_once("/usr/local/share/hostingplatform/esrpc.php");
$server = new ESRPCConnection();
$worker = new Worker($server->get());
$server->setTarget($worker);
$server->connect();
$server->serve();
class Worker {
var $api;
var $private_key_dir = "/etc/ssl/private";
var $private_key_dir_mode = 0755;
var $private_key_mode = 0400;
function __construct($api) {
$this->api = $api;
}
function setDomainPrivateKey($packagename, $domainname, $key) {
// create private key dir if non existent
if (!is_dir($this->private_key_dir))
mkdir($this->private_key_dir,
$this->private_key_dir_mode,
true
);
$private_key_file = $this->private_key_dir . "/$packagename-$domainname.key";
// write private key file
file_put_contents($private_key_file, $key);
// set permissions and owner
chmod($private_key_file, $this->private_key_mode);
chown($private_key_file, "root");
chgrp($private_key_file, "ssl-cert");
return true;
}
}