phpday 2025 - Call For Papers

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_exportExporta um CSR como uma string

Descrição

openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, string &$output, bool $no_text = true): bool

openssl_csr_export() exporta a Requisição de Assinatura de Certificado, representada pelo parâmetro csr, em formato PEM, na variável informada em output, que é passada por referência.

Parâmetros

csr

Consulte Parâmetros CSR para obter uma lista de valores válidos.

output

Em caso de sucesso, esta string conterá o CSR codificado no formato PEM

no_text

O parâmetro opcional notext afeta a verbosidade da saída; se for false, então informações adicionais legíveis para humanos serão incluídas na saída. O valor padrão de notext é true.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 csr aceita agora uma instância de OpenSSLCertificateSigningRequest; anteriormente, um resource do tipo OpenSSL X.509 CSR era aceito.

Exemplos

Exemplo #1 Exemplo de openssl_csr_export()

<?php
$subject
= array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo
$csr_string;
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
3
carlos AT wfmh DOT org DOT pl
22 years ago
Here you come with the example of how to use this function.

if( $csr = openssl_csr_new( array(
"countryName"=>"PL",
"stateOrProvinceName" => "blah",
"organizationName" => "company ltd",
"commonName"=>"foo.bar.com",
"Email"=>"blah@foo.bar.com"), $privkey )
)
{
openssl_csr_export_to_file( $csr, "out.csr");
}
else
{
printf("failed\n");
}

Keep in mind that keys are case sensitive (i.e. give "email" instead of "Email" and you get warning). Also remember it's important to keep the order of the arguments in array. Move the "Email" above commonName and check what you get (in case you don't know how: "openssl req -noout -text -in out.csr").

It also happened to me me I got segfault when order was rubbish (afair Email after countryName, or plenty Email's here and there), so be awared.
To Top