(PHP 4 >= 4.2.0, PHP 5)
openssl_csr_sign — Bir CSR'yi başka bir sertifika (veya kendisi) ile imzalayıp bir sertifika üretir
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ınız.
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.
Üretilen sertifikayı imzalamak için kullanılacak sertifika. NULL belirtilirse üretilen sertifika kendisiyle imzalanır.
CA_sert ile ilişkili gizli anahtar.
Üretilen sertifikanın kaç gün geçerli kalacağı belirtilir.
Üretilen sertifikanın ince ayarları için kullanılır. Bu değiştirge ile ilgili ayrıntılı bilgi için openssl_csr_new() işlevine bakınız.
Üretilen sertifikanın sıra numarası. Belirtilmezse 0 öntanımlıdır.
İşlem başarısız olursa FALSE yoksa bir x509 sertifika özkaynağı döner.
Sürüm: | Açıklama |
---|---|
4.3.3 | sıranum değiştirgesi eklendi. |
Örnek 1 - openssl_csr_sign() örneği - CSR 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ı");
$userscert = openssl_csr_sign($csrdata, $cacert, $gizanh, 365);
// Ü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";
}
?>