(PHP 4 >= 4.2.0, PHP 5)
openssl_csr_new — Bir sertifika imzalama isteği (CSR) üretir
$dn
, resource &$gizanh
[, array $ayarlar
[, array $ek_seçenekler
]] )
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.
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.
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.
Üretilen CSR'yi döndürür.
Ö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($csr, null, $privkey, 365);
// (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";
}
?>