SSL сертификат


Для тестирования SSL-сертификата доступны методы API:

При успешном вызове метода вы получите ответ следующего вида:

open_ssl

JSON
{
  "OperationState": {
    "Code": 0,
    "Desc": "Успешно обработана"
  },
  "OperationId": "e8d24ac5-099b-41ce-a84a-a09b4ad9fe40",
  "Result": {
    "State": {
      "Code": 0,
      "Desc": "Успешно обработан."
    },
    "Data": "Congratulations! Your certificate is valid.
Property value is value"
  }
}

Далее даны примеры кода для вызова этих методов на разных языках.

C#
// Путь до сертификата, скачанного из личного кабинета.
string certPath = @"certificate.pfx";
// Пароль от сертификата, заданный в личном кабинете.
string certPassword = "Z3nJ#f@85G";

using (X509Certificate2 certificate = new X509Certificate2(certPath, certPassword))
{
    HttpClientHandler clientHandler = new HttpClientHandler();
    clientHandler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13;
    clientHandler.ClientCertificates.Add(certificate);
    clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
    var requestParams = new Dictionary<string, string>
    {
        // Пример того, как задаются параметров запроса.
        // Вызывающийся здесь метод getCertificateValidationPcidssLevel не требует параметров, но они используются для вызова других методов API.
        ["property"] = "value",
    };
    using (var content = new FormUrlEncodedContent(requestParams))
    {
        using (HttpClient client = new HttpClient(clientHandler))
        {
            using (HttpResponseMessage response = client.PostAsync($"https://api.intellectmoney.ru/personal/certificate/getCertificateValidationPcidssLevel", content).Result)
            {
                string responseText = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine(responseText);
                Console.ReadKey();
            }
        }
    }
}

Для использования сертификата в PHP его следует конвертировать из формата PFX в формат PEM. Можно использовать утилиту OpenSSL:

Команда конвертации в OpenSSL

Text Only
openssl pkcs12 -in cert_file.pfx -out cert_file.pem
PHP
<?php
    $url = "https://api.intellectmoney.ru/personal/certificate/getCertificateValidationBaseLevel";
    $cert_file = 'cert_file.pem';
    $cert_password = '1234';
    $ch = curl_init();
    $options = array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => $url,
    CURLOPT_SSLCERT => $cert_file,
    CURLOPT_SSLCERTPASSWD => $cert_password,
    );
    curl_setopt_array($ch, $options);
    $output = curl_exec($ch);
    if ($output === false) {
    echo "Curl Error : " . curl_error($ch);
    } else {
    echo $output;
    }
?>