라이브러리

[PHP] openssl_spki_new - 새로 서명된 공개 키와 챌린지 생성




openssl_spki_new 함수

`openssl_spki_new` 함수는 OpenSSL 라이브러리에 포함된 함수로, 공개 키 인프라 (Public Key Infrastructure, PKI) 인증서를 생성하는 데 사용됩니다. 이 함수는 공개 키와 개인 키를 기반으로 인증서를 생성하고, 인증서에 포함될 정보를 지정할 수 있습니다.

함수 구조


`openssl_spki_new` 함수의 구조는 다음과 같습니다.

#hostingforum.kr
php

openssl_spki_new ( string $key , array $info [, int $options ] ) : resource



* `$key`: 개인 키를 포함하는 공개 키 인프라 (PKI) 인증서를 생성하기 위한 개인 키입니다.
* `$info`: 인증서에 포함될 정보를 지정하는 배열입니다. 이 배열에는 다음 키가 포함될 수 있습니다.
+ `subject`: 인증서의 주체 이름입니다.
+ `issuer`: 인증서의 발급자 이름입니다.
+ `notBefore`: 인증서의 유효 시작 날짜입니다.
+ `notAfter`: 인증서의 유효 종료 날짜입니다.
+ `serialNumber`: 인증서의 시리얼 번호입니다.
+ `publicKeyAlgorithm`: 인증서의 공개 키 알고리즘입니다.
+ `publicKey`: 인증서의 공개 키입니다.
* `$options`: 인증서 생성 옵션입니다. 이 옵션은 인증서의 생성 방법을 지정합니다.

예제


다음 예제에서는 `openssl_spki_new` 함수를 사용하여 공개 키 인프라 (PKI) 인증서를 생성하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php



// 개인 키 생성

$privateKey = openssl_pkey_new();

openssl_pkey_export($privateKey, $privateKeyString);



// 인증서 정보 생성

$info = array(

    'subject' => 'example.com',

    'issuer' => 'example.com',

    'notBefore' => '2022-01-01 00:00:00',

    'notAfter' => '2023-01-01 00:00:00',

    'serialNumber' => '1234567890',

    'publicKeyAlgorithm' => 'RSA',

    'publicKey' => $privateKeyString

);



// 인증서 생성

$spki = openssl_spki_new($privateKey, $info);



// 인증서 정보 출력

echo "인증서 정보:
";

echo "  주체 이름: " . $info['subject'] . "
";

echo "  발급자 이름: " . $info['issuer'] . "
";

echo "  유효 시작 날짜: " . $info['notBefore'] . "
";

echo "  유효 종료 날짜: " . $info['notAfter'] . "
";

echo "  시리얼 번호: " . $info['serialNumber'] . "
";

echo "  공개 키 알고리즘: " . $info['publicKeyAlgorithm'] . "
";

echo "  공개 키: " . $info['publicKey'] . "
";



// 인증서 파일로 저장

$spkiFile = 'example.com.spki';

file_put_contents($spkiFile, $spki);



echo "인증서 파일이 생성되었습니다.
";



?>



이 예제에서는 개인 키를 생성하고, 인증서 정보를 지정한 다음 `openssl_spki_new` 함수를 사용하여 인증서를 생성합니다. 생성된 인증서는 `example.com.spki` 파일로 저장됩니다.

참고


* `openssl_spki_new` 함수는 OpenSSL 라이브러리에 포함된 함수로, PHP 7.2 이상에서 사용할 수 있습니다.
* 인증서 생성 옵션 (`$options`)은 인증서의 생성 방법을 지정합니다. 예를 들어, `OPENSSL_SPKI_OPTIONS_NO_ENCRYPT` 옵션을 사용하면 인증서를 암호화하지 않습니다.
* 인증서 정보 (`$info`) 배열에는 인증서에 포함될 정보를 지정하는 키가 포함됩니다. 예를 들어, `subject` 키는 인증서의 주체 이름을 지정합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 348 페이지

검색

게시물 검색