File "plesk.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/really-simple-ssl/lets-encrypt/integrations/plesk/plesk.php
File size: 2.1 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

use PleskX\Api\Client;
require_once rsssl_le_path . 'vendor/autoload.php';
require_once rsssl_le_path . 'integrations/plesk/functions.php';
class rsssl_plesk
{
    public $host;
    private $login;
    private $password;
    public $ssl_installation_url;
    public function __construct()
    {
        $password = RSSSL_LE()->letsencrypt_handler->decode(rsssl_get_value('plesk_password'));
        $host = rsssl_get_value('plesk_host');
        $this->host = str_replace(array('http://', 'https://', ':8443'), '', $host);
        $this->login = rsssl_get_value('plesk_username');
        $this->password = $password;
        $this->ssl_installation_url = 'https://' . $this->host . ":8443/smb/ssl-certificate/list/id/21";
    }
    public function credentials_available()
    {
        if (!empty($this->host) && !empty($this->password) && !empty($this->login)) {
            return true;
        }
        return false;
    }
    public function installSSL($domains)
    {
        $key_file = get_option('rsssl_private_key_path');
        $cert_file = get_option('rsssl_certificate_path');
        $cabundle_file = get_option('rsssl_intermediate_path');
        try {
            $client = new Client($this->host);
            $client->setCredentials($this->login, $this->password);
            $response = $client->certificate()->install($domains, ['csr' => '', 'pvt' => file_get_contents($key_file), 'cert' => file_get_contents($cert_file), 'ca' => file_get_contents($cabundle_file)]);
            error_log(print_r($response, true));
            update_option('rsssl_le_certificate_installed_by_rsssl', 'plesk');
            delete_option('rsssl_installation_error');
            $status = 'success';
            $action = 'continue';
            $message = __('Successfully installed SSL', "really-simple-ssl");
        } catch (Exception $e) {
            error_log(print_r($e, true));
            update_option('rsssl_installation_error', 'plesk');
            $status = 'warning';
            $action = 'continue';
            $message = $e->getMessage();
        }
        return new RSSSL_RESPONSE($status, $action, $message);
    }
}