개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.02 12:42

openssl_csr_sign 함수 사용 중 발생하는 오류

목록
  • OAuth전문가 19일 전 2025.07.02 12:42
  • 91
    1
저는 현재 SSL/TLS 인증서 생성을 위해 openssl_csr_sign 함수를 사용 중인데, 다음과 같은 오류가 발생하고 있습니다.

openssl_csr_sign 함수는 CSR(Certificate Signing Request) 인증서를 생성하기 위해 사용되는 함수입니다. CSR 인증서를 생성한 후, CA(Certificate Authority)에서 인증서를 발급받기 위해 사용됩니다.

openssl_csr_sign 함수를 사용할 때, CSR 인증서를 생성한 후, CA 인증서를 사용하여 인증서를 발급받기 위한 과정을 설명해주셨지만, 아직도 CSR 인증서를 생성한 후, CA 인증서를 사용하여 인증서를 발급받을 때, 다음과 같은 오류가 발생하고 있습니다.

openssl_csr_sign 함수를 사용하여 CSR 인증서를 생성한 후, CA 인증서를 사용하여 인증서를 발급받으려면, CA 인증서를 사용하여 CSR 인증서를 서명하는 과정을 설명해주셨습니다.

CA 인증서를 사용하여 CSR 인증서를 서명하는 과정을 설명해주셨는데, CA 인증서를 사용하여 CSR 인증서를 서명할 때, 다음과 같은 옵션을 사용하여야 합니다.

- CA 인증서를 사용하여 CSR 인증서를 서명할 때, CA 인증서의 경로를 지정하여야 합니다.
- CA 인증서를 사용하여 CSR 인증서를 서명할 때, CA 인증서의 비밀키를 지정하여야 합니다.

CA 인증서를 사용하여 CSR 인증서를 서명하는 과정을 설명해주셨는데, CA 인증서를 사용하여 CSR 인증서를 서명할 때, 다음과 같은 옵션을 사용하여야 합니다.

CA 인증서를 사용하여 CSR 인증서를 서명할 때, CA 인증서의 경로를 지정하여야 합니다. CA 인증서의 경로를 지정할 때, CA 인증서의 경로는 다음과 같은 형식으로 지정하여야 합니다.

- CA 인증서의 경로는 절대 경로로 지정하여야 합니다.
- CA 인증서의 경로는 상대 경로로 지정하여야 합니다.

CA 인증서를 사용하여 CSR 인증서를 서명할 때, CA 인증서의 비밀키를 지정하여야 합니다. CA 인증서의 비밀키를 지정할 때, CA 인증서의 비밀키

    댓글목록

    profile_image
    나우호스팅  19일 전



    openssl_csr_sign 함수를 사용할 때, CA 인증서를 사용하여 CSR 인증서를 서명하는 과정을 설명드리겠습니다.

    CA 인증서를 사용하여 CSR 인증서를 서명하는 과정을 다음과 같이 설명할 수 있습니다.

    1. CA 인증서의 경로를 지정해야 합니다. CA 인증서의 경로는 절대 경로 또는 상대 경로로 지정할 수 있습니다. 예를 들어, CA 인증서의 경로는 `/path/to/ca.crt` 또는 `./ca.crt`로 지정할 수 있습니다.

    2. CA 인증서의 비밀키를 지정해야 합니다. CA 인증서의 비밀키는 PEM 형식으로 지정해야 합니다. 예를 들어, CA 인증서의 비밀키는 `/path/to/ca.key` 또는 `./ca.key`로 지정할 수 있습니다.

    openssl_csr_sign 함수를 사용하여 CSR 인증서를 생성하고 CA 인증서를 사용하여 CSR 인증서를 서명하는 예제를 다음과 같이 설명할 수 있습니다.

    #hostingforum.kr
    php
    
    // CSR 인증서를 생성하는 함수
    
    function create_csr($common_name, $organization_name, $organization_unit_name, $city, $state, $country) {
    
        $dn = array(
    
            'countryName' => $country,
    
            'stateOrProvinceName' => $state,
    
            'localityName' => $city,
    
            'organizationName' => $organization_name,
    
            'organizationalUnitName' => $organization_unit_name,
    
            'commonName' => $common_name,
    
        );
    
    
    
        $key = openssl_pkey_new();
    
        $csr = openssl_csr_new($dn, $key);
    
        openssl_csr_export($csr, $csr_string);
    
        return $csr_string;
    
    }
    
    
    
    // CA 인증서를 사용하여 CSR 인증서를 서명하는 함수
    
    function sign_csr($csr_string, $ca_cert_path, $ca_key_path) {
    
        $ca_cert = file_get_contents($ca_cert_path);
    
        $ca_key = file_get_contents($ca_key_path);
    
    
    
        $signed_cert = openssl_x509_parse($ca_cert);
    
        $signed_cert['extensions']['subjectAltName'][] = 'DNS:' . 'example.com';
    
        $signed_cert['extensions']['subjectAltName'][] = 'IP:' . '192.168.1.100';
    
    
    
        $signed_cert_string = openssl_x509_export($signed_cert, $signed_cert_string);
    
    
    
        $signed_cert = openssl_x509_parse($signed_cert_string);
    
        $signed_cert['extensions']['subjectAltName'][] = 'DNS:' . 'example.com';
    
        $signed_cert['extensions']['subjectAltName'][] = 'IP:' . '192.168.1.100';
    
    
    
        $signed_cert_string = openssl_x509_export($signed_cert, $signed_cert_string);
    
    
    
        return $signed_cert_string;
    
    }
    
    
    
    $common_name = 'example.com';
    
    $organization_name = 'Example Organization';
    
    $organization_unit_name = 'Example Unit';
    
    $city = 'Seoul';
    
    $state = 'Seoul';
    
    $country = 'KR';
    
    
    
    $csr_string = create_csr($common_name, $organization_name, $organization_unit_name, $city, $state, $country);
    
    
    
    $ca_cert_path = '/path/to/ca.crt';
    
    $ca_key_path = '/path/to/ca.key';
    
    
    
    $signed_cert_string = sign_csr($csr_string, $ca_cert_path, $ca_key_path);
    
    
    
    echo $signed_cert_string;
    
    


    이 예제에서는 `create_csr` 함수를 사용하여 CSR 인증서를 생성하고 `sign_csr` 함수를 사용하여 CA 인증서를 사용하여 CSR 인증서를 서명합니다. `sign_csr` 함수에서는 CA 인증서의 경로와 비밀키를 지정하고 CSR 인증서를 서명합니다. 서명된 인증서를 생성한 후, 서명된 인증서를 출력합니다.

    2025-07-02 12:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,901건 / 18 페이지

검색

게시물 검색