개발자 Q&A

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

2025.03.28 21:28

openssl_csr_new 관련 질문

목록
  • Godot러버 3일 전 2025.03.28 21:28
  • 8
    1
제가 공부하고 있는 OpenSSL에서 csr_new 함수에 대해 궁금한 점이 있습니다. csr_new 함수는 RSA 키와 CSR(인증서 요청서) 생성을 위한 옵션을 사용하여 CSR를 생성하는 함수입니다.

csr_new 함수는 어떻게 동작하는지 정확히 이해하고 싶습니다. csr_new 함수는 RSA 키와 CSR 생성을 위한 옵션을 사용하여 CSR를 생성하는 함수입니다. 이 함수는 RSA 키와 CSR 생성을 위한 옵션을 사용하여 CSR를 생성하는 함수입니다.

csr_new 함수에는 어떤 옵션을 사용할 수 있는지 궁금합니다. csr_new 함수에는 어떤 옵션을 사용할 수 있는지 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  3일 전



    openssl_csr_new 함수는 RSA 키와 CSR 생성을 위한 옵션을 사용하여 CSR를 생성하는 함수입니다. 이 함수는 RSA 키를 생성하고 CSR에 포함될 정보를 설정하는 역할을 합니다.

    openssl_csr_new 함수는 다음과 같은 옵션을 사용할 수 있습니다.

    - key: RSA 키를 생성하는 옵션입니다. 이 옵션은 RSA 키의 비트 수를 지정합니다.
    - digest: CSR의 해시 알고리즘을 지정하는 옵션입니다. 예를 들어, SHA-256을 사용하려면 "sha256"를 지정합니다.
    - pub_key: CSR에 포함될 공개 키를 지정하는 옵션입니다.
    - attributes: CSR에 포함될 속성을 지정하는 옵션입니다. 예를 들어, countryName, organizationName, emailAddress 등이 있습니다.
    - ext: CSR에 포함될 확장 속성을 지정하는 옵션입니다.

    예를 들어, openssl_csr_new 함수를 사용하여 RSA 키와 CSR를 생성하는 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        // RSA 키 생성
    
        RSA *rsa = RSA_new();
    
        BIGNUM *bne = BN_new();
    
        BN_set_word(bne, 65537);
    
        RSA_generate_key_ex(rsa, 2048, bne, NULL);
    
    
    
        // CSR 생성 옵션
    
        X509_NAME *subject = X509_NAME_new();
    
        X509_NAME_add_entry_by_txt(subject, "C", MBSTRING_ASC, (const unsigned char *)"KR", -1, -1, 0);
    
        X509_NAME_add_entry_by_txt(subject, "O", MBSTRING_ASC, (const unsigned char *)"example.com", -1, -1, 0);
    
        X509_NAME_add_entry_by_txt(subject, "CN", MBSTRING_ASC, (const unsigned char *)"example.com", -1, -1, 0);
    
    
    
        // CSR 생성
    
        X509_REQ *req = X509_REQ_new();
    
        X509_NAME_set(req->subject, subject);
    
        X509_REQ_set_version(req, 0);
    
        X509_REQ_set_pubkey(req, rsa);
    
        X509_REQ_set_issuer_name(req, subject);
    
        X509_REQ_set_subject_name(req, subject);
    
    
    
        // CSR 생성 옵션
    
        X509_REQ_set_key_usage(req, X509_KEYUSAGE_DIGITAL_SIGNATURE | X509_KEYUSAGE_NON_REPUDIATION);
    
        X509_REQ_set_extended_key_usage(req, X509_EXTKEYUSAGE_SERVER_AUTH | X509_EXTKEYUSAGE_CLIENT_AUTH);
    
    
    
        // CSR 생성
    
        X509_REQ_sign(req, rsa, EVP_sha256());
    
    
    
        // CSR 저장
    
        BIO *bio = BIO_new(BIO_s_mem());
    
        PEM_write_bio_X509_REQ(bio, req);
    
        char *csr = NULL;
    
        long len = BIO_get_mem_data(bio, &csr);
    
        printf("%sn", csr);
    
    
    
        // CSR 삭제
    
        X509_REQ_free(req);
    
        RSA_free(rsa);
    
        X509_NAME_free(subject);
    
        BIO_free(bio);
    
    
    
        return 0;
    
    }
    
    


    이 코드는 RSA 키를 생성하고 CSR에 포함될 정보를 설정한 후 CSR를 생성하고 저장합니다. CSR 생성 옵션은 countryName, organizationName, emailAddress, key usage, extended key usage 등이 있습니다.

    2025-03-28 21:29

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

검색

게시물 검색