Pular para conteúdo

SSL

Certificado customizado

Ativar certificado

Ativa ou desativa o certificado de um domínio.

PUT /v1/ssl/certificate/{dominio}
$ curl -i https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br \
-X PUT \
-H 'Content-Type: application/json' \
-H 'GoCache-Token: meu_token' \
-d '{"certificate": {"type": "custom", "enable": true}}'
<?php

$ch = curl_init("https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br");

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$headers = array(
                    "Content-Type: application/json",
                    "GoCache-Token: meu_token"
                );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$json = json_encode(array("certificate" => array(
    "type" => "auto",
    "enable" => TRUE
        )
    )
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>

Parâmetros

Campo Tipo Descrição
type String Qual certificado será ativado "auto" ou "custom"
enable Boolean Se o certificado será ativado ou desativado
HTTP/1.1 200 OK
{
    "response": {
        "msg": "Success"
    }
}
<?php

if( $statusCode == 200 ) {

    echo("Sucesso!\n");

    $obj = json_decode($response);

    echo("Resultado: " . $obj->response->msg);

}
?>

Consultar certificado

Consultar certificados de um domínio

GET /v1/ssl/certificate/{dominio}
$ curl -i https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br \
-X GET \
-H 'GoCache-Token: meu_token'
<?php

$ch = curl_init("https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$headers = array(
                    "GoCache-Token: meu_token"
                );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>

HTTP/1.1 200 OK
{
    "response": {
        "certificates" : [
            {
                "san" : [
                    "blog.meudominio.com.br",
                    "imagens.meudominio.com.br"
                ],
                "expirationDate" : "Dec 31 12:59:59 2050 GMT",
                "cn" : "www.meudominio.com.br",
                "type" : "auto",
                "enabled": true,
                "issueDate" : "Jan 01 00:00:01 2017 GMT"
            },
            {
                "san" : [
                    "acesso.meudominio.com.br"
                ],
                "expirationDate" : "Jul 31 03:10:10 2030 GMT",
                "cn" : "www.meudominio.com.br",

                "type" : "custom",
                "enabled": false,
                "issueDate" : "Jun  9 20:40:00 2015 GMT"
            }
        ]
    }
}
<?php

if( $statusCode == 200 ) {

    echo("Sucesso!\n");

    $obj = json_decode($response);

    echo("Resultado: Encontrados " . count($obj->response->certificates) . " certificados\n");

}
?>

Instalar certificado

Instala um certificado personalizado em um domínio.

POST /v1/ssl/certificate/{dominio}
$ curl -i https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br \
-X POST \
-H 'Content-Type: application/json' \
-H 'GoCache-Token: meu_token' \
--data-binary \
'{
    "certificate": "
                    -----BEGIN CERTIFICATE-----
                    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                    -----END CERTIFICATE-----
                   ",
    "privatekey": "
                    -----BEGIN PRIVATE KEY-----
                    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
                    -----END PRIVATE KEY-----
                  ",
    "enable": true
}'
<?php

$ch = curl_init("https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br");

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$headers = array(
                    "Content-Type: application/json",
                    "GoCache-Token: meu_token"
                );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$json = json_encode(array(
                                "certificate" => "
                                        -----BEGIN CERTIFICATE-----
                                        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                                        -----END CERTIFICATE-----
                                    ",
                                "privatekey" => "
                                        -----BEGIN PRIVATE KEY-----
                                        BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
                                        -----END PRIVATE KEY-----
                                    ",
                                "enable" => TRUE
                            )
                        );

curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$response = curl_exec($ch);

$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>

$ curl -i https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br \
-X POST \
-H 'GoCache-Token: meu_token' \
-F certificate=@meu_certificado.pem \
-F privatekey=@minha_chave_privada.pem \
-F enable=true
<?php

$ch = curl_init("https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br");

curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$headers = array(
                    "Content-Type: application/json",
                    "GoCache-Token: meu_token"
                );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$fields = array(
                "certificate" => file_get_contents("meu_certificado.pem"),
                "privatekey" => file_get_contents("minha_chave_privada.pem"),
                "enable" => TRUE
                );

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$response = curl_exec($ch);

$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>
Campo Opcional Tipo Descrição
certificate String Certificado SSL em formato PEM.
privatekey String Chave privada do certificado em formato PEM (chaves encriptadas com senha não são suportadas).
enable Boolean Se o certificado deve ser ativado ao fim da instalação. Valor padrão: false
HTTP/1.1 200 OK
{
    "response": {
        "msg": "Success",
        "certificates" : [
            {
                "san" : [
                    "blog.meudominio.com.br",
                    "imagens.meudominio.com.br"
                ],
                "expirationDate" : "Dec 31 12:59:59 2050 GMT",
                "cn" : "www.meudominio.com.br",
                "type" : "auto",
                "enabled": true,
                "issueDate" : "Jan 01 00:00:01 2017 GMT"
            },
            {
                "san" : [
                    "acesso.meudominio.com.br"
                ],
                "expirationDate" : "Jul 31 03:10:10 2030 GMT",
                "cn" : "www.meudominio.com.br",
                "type" : "custom",
                "enabled": false,
                "issueDate" : "Jun  9 20:40:00 2015 GMT"
            }
        ]
    }
}
<?php

if( $statusCode == 200 ) {

    echo("Sucesso!\n");

    $obj = json_decode($response);

    echo("Resultado: " . $obj->response->msg);

}
?>

Erro 400 geral

Nome Tipo Descrição
error String Tipo de erro. Valores permitidos: "ValidationError", "InternalServerError".
msg String Mensagem de erro.

Erro 400 de validação

Nome Tipo Descrição
response Object
error Boolean Status de erro. Valor padrão: true
msg String Mensagem de erro.
code Integer Código de erro. Descrição de valores abaixo.
 65537 Integer O certificado ou chave privada são inválidos.
 65538 Integer A chave privada está criptografada (somente chaves descriptografadas são aceitas).
 65539 Integer A chave privada é inválida.
 65540 Integer O certificado é inválido (não pode ser um CSR).
 65541 Integer Certificado inválido.
 65542 Integer O campo certificado deve conter o certificado intermediário.
 65543 Integer Falha interna de validação de chave privada.
 65544 Integer A chave privada não corresponde ao certificado escolhido.

Remover certificado

Remove o certificado personalizado de um domínio

DELETE /v1/ssl/certificate/{dominio}
$ curl -i https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br \
-X DELETE \
-H 'GoCache-Token: meu_token'
<?php

$ch = curl_init("https://api.gocache.com.br/v1/ssl/certificate/meudominio.com.br");

curl_setopt($ch, CURLOPT_DELETE, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$headers = array(
                    "GoCache-Token: meu_token"
                );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>

HTTP/1.1 200 OK
{
    "response": {
        "msg": "Success"
    }
}
<?php

if( $statusCode == 200 ) {

    echo("Sucesso!\n");

    $obj = json_decode($response);

    echo("Resultado: " . $obj->response->msg);

}
?>