(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_csr_sign — Bir CSR'yi başka bir sertifika (veya kendisi) ile imzalayıp bir sertifika üretir
$csr
,$CA_sert
,$gizli_anh
,$gün
,$seçenekler
= null
,$sıranum
= 0csr
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.
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.
İşlem başarısız olursa false
yoksa bir OpenSSLCertificate örneği döner.
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.0 | csr artık OpenSSLCertificateSigningRequest örneği kabul ediyor; evvelce OpenSSL X.509 CSR türünde bir özkaynak kabul ederdi. |
8.0.0 | CA_sert artık OpenSSLCertificate örneği kabul ediyor; evvelce OpenSSL X.509 türünde bir özkaynak kabul ederdi. |
8.0.0 | gizli_anh artık OpenSSLAsymmetricKey örneği kabul ediyor; evvelce OpenSSL key veya OpenSSL X.509 türünde bir özkaynak kabul ederdi. |
Ö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";
}
?>