openssl_csr_sign

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

openssl_csr_signBir CSR'yi başka bir sertifika (veya kendisi) ile imzalayıp bir sertifika üretir

Açıklama

openssl_csr_sign(
    OpenSSLCertificateSigningRequest|string$csr,
    OpenSSLCertificate|string|null$CA_sert,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string$gizli_anh,
    int$gün,
    ?array$seçenekler = null,
    int$sıranum = 0
): OpenSSLCertificate|false

csr ile belirtilen Sertifika İmzalama İsteğinden bir x509 sertifikesı üretir.

Bilginize: Bu işlevin gerektiği gibi çalışması için geçerli bir openssl.cnf kurulu olmalıdır. Daha ayrıntılı bilgi için kurulum bölümüne bakılabilir.

Bağımsız Değişkenler

csr

openssl_csr_new() tarafından üretilmiş bir sertifika imzalama isteği, file://bir/yol/csr biçeminde bir dizge olarak PEM kodlamalı bir CSR'nin dosya yolu veya openssl_csr_export() işlevinden dönen bir dizge olabilir.

CA_sert

Üretilen sertifikayı imzalamak için kullanılacak sertifika. null belirtilirse üretilen sertifika kendisiyle imzalanır.

gizli_anh

CA_sert ile ilişkili gizli anahtar.

gün

Üretilen sertifikanın kaç gün geçerli kalacağı belirtilir.

seçenekler

Üretilen sertifikanın ince ayarları için kullanılır. Bu bağımsız değişken ile ilgili ayrıntılı bilgi için openssl_csr_new() işlevine bakınız.

sıranum

Üretilen sertifikanın sıra numarası. Belirtilmezse 0 öntanımlıdır.

Dönen Değerler

İşlem başarısız olursa false yoksa bir OpenSSLCertificate örneği döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 Başarı durumunda artık OpenSSLCertificate örneği dönüyor; evvelce OpenSSL X.509 türünde bir özkaynak dönerdi.
8.0.0csr artık OpenSSLCertificateSigningRequest örneği kabul ediyor; evvelce OpenSSL X.509 CSR türünde bir özkaynak kabul ederdi.
8.0.0CA_sert artık OpenSSLCertificate örneği kabul ediyor; evvelce OpenSSL X.509 türünde bir özkaynak kabul ederdi.
8.0.0gizli_anh artık OpenSSLAsymmetricKey örneği kabul ediyor; evvelce OpenSSL key veya OpenSSL X.509 türünde bir özkaynak kabul ederdi.

Örnekler

Örnek 1 - openssl_csr_sign() örneği - PEM imzalama (Kendi Sertifika Yetkilinizi nasıl oluşturursunuz?)

<?php
// Başka bir sayfadaki bir textarea'ya aktarılmak üzere bir
// CSR alındığını varsayalım
$csrdata = $_POST["CSR"];

// Sertifikayı kendi "sertifika yetkilimizin sertifikası" ile
// imzalayacağız. İmzalamak için başka bir sertifika da kullanılabilirdi,
// fakat imzalama sertifikası yazılım/kulllanıcılar için güvenilir
// olmadıkça işlem işe yaramayacak ve yeni bir imzalı sertifika gerekecektir.

// Kendi CA sertifikamıza ve gizli anahtarımıza ihtiyacımız var
$cacert = "file://bir/yol/ca.crt";
$gizanh = array("file://bir/yol/ca.key", "gizanh_parolası");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );

// Üretilen sertifikayı gösterelim ki, kullanıcı onu kendi alanına
// kopyalayabilsin (örneğin SSL sunucusunun sertifikasının bulunduğu dosyaya)
openssl_x509_export($usercert, $certout);
echo
$certout;

// Oluşan hata varsa gösterelim
while (($e = openssl_error_string()) !== false) {
echo
$e . "\n";
}
?>
To Top