openssl_csr_new

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

openssl_csr_newBir sertifika imzalama isteği (CSR) üretir

Açıklama

openssl_csr_new ( array $dn , resource &$gizanh [, array $ayarlar [, array $ek_seçenekler ]] ) : mixed

dn ile belirtilen, sertifika için kullanılacak ayırt edilebilir isim ile sağlanan bilgiye dayanarak yeni bir sertifika imzalama isteği (CSR) ü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ınız.

Değiştirgeler

dn

Sertifika için kullanılacak ayırt edilebilir isim.

gizanh

openssl_pkey_new() (veya başka bir openssl_pkey işlevi) ile üretilmiş bir gizli anahtar. Anahtar çiftinin genel anahtar parçası CSR'yi imzalamakta kullanılır.

ayarlar

İsteği ilklendirmek için öntanımlı olarak sisteminizdeki openssl.conf kullanılır. ayarlar dizisinin config_section_section anahtarında başka bir yapılandırma dosyası bölümü belirtebileceğiniz gibi config anahtarında başka bir openssl yapılandırma dosyasının yolunu da belirtebilirsiniz. ayarlar dizisi aşağıdaki anahtarları içerebilir. Bu anahtarlar openssl.conf dosyasındaki eşdeğerleri gibi davranırlar.

Yapılandırma Geçersizleştiricileri
ayarlar anahtarı Türü openssl.conf eşdeğeri Açıklama
digest_alg string default_md Kullanılacak özet yöntemini belirler.
x509_extensions string x509_extensions Bir x509 sertifikası üretilirken kullanılacak eklentileri belirler.
req_extensions string req_extensions Bir CSR üretilirken kullanılacak eklentileri belirler.
private_key_bits integer default_bits Bir gizli anahtarın kaç bitlik olacağını belirler.
private_key_type integer none Üretilecek gizli anahtarın türünü belirler. Şu sabitlerden biri olabilir: OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA. Öntanımlı değer OPENSSL_KEYTYPE_RSA olup şimdilik desteklenen tek anahtar türüdür.
encrypt_key boolean encrypt_key İhraç edilecek anahtar (bir parola ile) şifrelenececek mi?

ek_seçenekler

CSR için kullanılacak ek seçenekleri belirtmek için kullanılır. dn ve ek_seçenekler birer ilişkisel dizi olup anahtarları nesne kimliklerine (OID) dönüştürülerek isteğin ilgili parçasına uygulanır.

Dönen Değerler

Üretilen CSR'yi döndürür.

Örnekler

Örnek 1 - Öz-imzalı sertifika üretimi

<?php
// Sertifikada ayırt edilebilir isim için kullanılacak veriyi oluşturalım.
// Bu anahtar değerlerinde, isminiz, şirketiniz ve hatta sertifikanın adına
// üretildiği şirketin veya şahsın isminin bulunmasını sağlayın.
// SSL sertifikaları için commonName genellikle sertifikayı kullanacak
// alan ismidir. Fakat S/MIME sertifikalar için commonName, sertifikayı
// kullanacak şahsın ismidir.
$dn = array(
    
"countryName" => "UK",
    
"stateOrProvinceName" => "Somerset",
    
"localityName" => "Glastonbury",
    
"organizationName" => "The Brain Room Limited",
    
"organizationalUnitName" => "PHP Documentation Team",
    
"commonName" => "Wez Furlong",
    
"emailAddress" => "[email protected]"
);

// Yeni bir gizli/genel anahtar çifti üretelim
$privkey openssl_pkey_new();

// Bir sertifika imzalama isteği üretelim
$csr openssl_csr_new($dn$privkey);

// CA'nız isteği yerine getirene kadar bir öz-imzalı sertifika üretelim.
// Bu sertifika 365 günlük olsun.
$sscert openssl_csr_sign($csrnull$privkey365);

// (Sertifikanın kullanılacağı yere bağlı olarak) posta istemcisine,
// posta sunucusuna veya HTTP sunucusuna kurulacak öz-imzali sertifikayı,
// CSR'yi ve gizli anahtarı alalım. Örnekte bunlar değişkenlere atanmıştır.
// Fakat siz bunları doğrudan dosyalarına kaydedebilirsiniz.
// CSR genellikle "gerçek" sertifikayı üretecek CA'ya gönderilir.
openssl_csr_export($csr$csrout); var_dump($csrout);
openssl_x509_export($sscert$certout); var_dump($certout);
openssl_pkey_export($privkey$pkeyout"mypassword"); var_dump($pkeyout);

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