Làm cách nào tôi có thể đặt mục đích của chứng chỉ X.509 thành X509_PURPOSE_ANY bằng PHP 5.x?Cách xác định mục đích cụ thể của chứng chỉ X509 trong PHP
Các đầu ra mã sau cảnh báo này:
Cảnh báo: openssl_csr_new() [function.openssl-csr-new.php]: dn: X509_PURPOSE không phải là một tên được công nhận trong/home/www/index. php on line 45
PHP Script:
$Configs = array(
'config' => 'test.cnf',
'digest_alg' => 'sha1',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => true,
'encrypt_key_cipher' => OPENSSL_CIPHER_3DES);
$ExtraAttribs = array('X509_PURPOSE' => 'X509_PURPOSE_ANY');
//create cert
$dn = array('commonName' => 'Chief');
$privkey = openssl_pkey_new($Configs);
$csr = openssl_csr_new($dn, $privkey, $Configs, $ExtraAttribs);
dòng cuối cùng là dòng 45.
Bạn đã thử bỏ các dấu nháy đơn ''' khỏi mảng '$ ExtraAttribs'? –
Không hoạt động. Thông báo lỗi: "Sử dụng hằng số không xác định X509_PURPOSE - giả định 'X509_PURPOSE'" – Mike
Tôi không thể tìm thấy bất kỳ dấu hiệu nào cho thấy chứng chỉ X509 có "mục đích". Tôi chỉ có thể tìm thấy "Ràng buộc cơ bản", "Sử dụng khóa" và "Sử dụng khóa nâng cao", bạn có thể thực hiện điều này từ OpenSSL trên dòng lệnh không? – Martin