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);
}
?>