
openssl_spki_export 함수는 PKI(공인키 인프라) 인증서를 생성하는 데 사용됩니다.
인증서 생성을 위해 필요한 파라미터는 다음과 같습니다.
- private_key: 개인 키를 포함하는 객체
- subject: 인증서의 주체 정보
- issuer: 인증서의 발급자 정보
- not_before: 인증서의 유효 시작 날짜
- not_after: 인증서의 유효 종료 날짜
- serial_number: 인증서의 시리얼 번호
- public_key: 인증서의 공개 키
- spki: 인증서의 SPKI(공인키 인프라) 정보
인증서 생성 시 발생하는 오류는 다음과 같습니다.
- private_key가 유효하지 않은 경우
- subject, issuer, not_before, not_after, serial_number, public_key가 유효하지 않은 경우
- spki가 유효하지 않은 경우
이러한 오류를 해결하는 방법은 다음과 같습니다.
- private_key를 유효한 개인 키로 교체
- subject, issuer, not_before, not_after, serial_number, public_key를 유효한 정보로 교체
- spki를 유효한 인증서의 SPKI 정보로 교체
openssl_spki_export 함수를 사용하여 인증서를 생성하는 예제는 다음과 같습니다.
#hostingforum.kr
php
<?php
// 개인 키 생성
$private_key = openssl_pkey_new();
openssl_pkey_export($private_key, $private_key_pem);
// 인증서 생성
$subject = array(
"C" => "KR",
"ST" => "Seoul",
"L" => "Seoul",
"O" => "Example",
"OU" => "Example",
"CN" => "example.com"
);
$issuer = array(
"C" => "KR",
"ST" => "Seoul",
"L" => "Seoul",
"O" => "Example",
"OU" => "Example",
"CN" => "example.com"
);
$not_before = strtotime("2022-01-01");
$not_after = strtotime("2023-01-01");
$serial_number = "1234567890";
$public_key = openssl_pkey_get_details($private_key);
$spki = openssl_spki_export($private_key, $subject, $issuer, $not_before, $not_after, $serial_number, $public_key);
// 인증서 저장
file_put_contents("example.com.crt", $spki);
?>
이 예제는 개인 키를 생성하고 인증서를 생성하는 방법을 보여줍니다. 인증서의 주체 정보, 발급자 정보, 유효 시작 날짜, 유효 종료 날짜, 시리얼 번호, 공개 키, SPKI 정보를 설정하고 인증서를 저장하는 방법을 보여줍니다.
2025-04-14 14:17