Revision 22b380aa
Added by Evgeny Yurchenko about 14 years ago
etc/inc/certs.inc | ||
---|---|---|
259 | 259 |
$ca_str_key = base64_decode($ca['prv']); |
260 | 260 |
$ca_res_crt = openssl_x509_read($ca_str_crt); |
261 | 261 |
$ca_res_key = openssl_pkey_get_private(array(0 => $ca_str_key, 1 => "")); |
262 |
if(!$ca_res_key) return false; |
|
262 | 263 |
$ca_serial = ++$ca['serial']; |
263 | 264 |
|
264 | 265 |
$args = array( |
... | ... | |
269 | 270 |
|
270 | 271 |
// generate a new key pair |
271 | 272 |
$res_key = openssl_pkey_new($args); |
273 |
if(!$res_key) return false; |
|
272 | 274 |
|
273 | 275 |
// generate a certificate signing request |
274 | 276 |
$res_csr = openssl_csr_new($dn, $res_key, $args); |
277 |
if(!$res_csr) return false; |
|
275 | 278 |
|
276 | 279 |
// self sign the certificate |
277 | 280 |
$res_crt = openssl_csr_sign($res_csr, $ca_res_crt, $ca_res_key, $lifetime, |
278 | 281 |
$args, $ca_serial); |
282 |
if(!$res_crt) return false; |
|
279 | 283 |
|
280 | 284 |
// export our certificate data |
281 |
openssl_pkey_export($res_key, $str_key); |
|
282 |
openssl_x509_export($res_crt, $str_crt); |
|
285 |
if (!openssl_pkey_export($res_key, $str_key) || |
|
286 |
!openssl_x509_export($res_crt, $str_crt)) |
|
287 |
return false; |
|
283 | 288 |
|
284 | 289 |
// return our certificate information |
285 | 290 |
$cert['caref'] = $caref; |
... | ... | |
299 | 304 |
|
300 | 305 |
// generate a new key pair |
301 | 306 |
$res_key = openssl_pkey_new($args); |
307 |
if(!$res_key) return false; |
|
302 | 308 |
|
303 | 309 |
// generate a certificate signing request |
304 | 310 |
$res_csr = openssl_csr_new($dn, $res_key, $args); |
311 |
if(!$res_csr) return false; |
|
305 | 312 |
|
306 | 313 |
// export our request data |
307 |
openssl_pkey_export($res_key, $str_key); |
|
308 |
openssl_csr_export($res_csr, $str_csr); |
|
314 |
if (!openssl_pkey_export($res_key, $str_key) || |
|
315 |
!openssl_csr_export($res_csr, $str_csr)) |
|
316 |
return false; |
|
309 | 317 |
|
310 | 318 |
// return our request information |
311 | 319 |
$cert['csr'] = base64_encode($str_csr); |
Also available in: Unified diff
Internal cert and CSR creation error handling added.