(PHP 4 >= 4.2.0, PHP 5, PHP 7)
openssl_csr_sign — Bir CSR'yi başka bir sertifika (veya kendisi) ile imzalayıp bir sertifika üretir
$csr
, mixed $CA_sert
, mixed $gizanh
, int $gün
[, array $ayarlar
[, int $sıranum
= 0
]] ) : resource
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.
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.
gizanh
CA_sert
ile ilişkili gizli anahtar.
gün
Üretilen sertifikanın kaç gün geçerli kalacağı belirtilir.
ayarlar
Ü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.
sıranum
Ü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";
}
?>