2.2. OpenSSL을 사용하여 개인 CA 생성


개인 인증 기관(CA)은 시나리오가 내부 네트워크 내의 엔티티를 확인해야 하는 경우에 유용합니다. 예를 들어, 컨트롤에서 서명된 인증서 또는 상용 CA를 구입하지 않으려면 개인 CA를 사용하여 인증으로 VPN 게이트웨이를 만들 때 사용합니다. 이러한 사용 사례의 인증서에 서명하기 위해 개인 CA는 자체 서명된 인증서를 사용합니다.

사전 요구 사항

  • sudo 를 사용하여 관리자 명령을 입력할 수 있는 루트 권한 또는 권한이 있어야 합니다. 이러한 권한이 필요한 명령은 # 으로 표시됩니다.

절차

  1. CA의 개인 키를 생성합니다. 예를 들어 다음 명령은 256비트 Elliptic Curve Digital Signature Algorithm(ECDSA) 키를 생성합니다.

    $ openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out <ca.key>

    키 생성 프로세스의 시간은 호스트의 하드웨어 및 엔트로피, 선택한 알고리즘 및 키 길이에 따라 달라집니다.

  2. 이전 명령에서 생성된 개인 키를 사용하여 서명된 인증서를 생성합니다.

    $ openssl req -key <ca.key> -new -x509 -days 3650 -addext keyUsage=critical,keyCertSign,cRLSign -subj "/CN=<Example CA>" -out <ca.crt>

    생성된 ca.crt 파일은 10년 동안 다른 인증서에 서명하는 데 사용할 수 있는 자체 서명된 CA 인증서입니다. 프라이빗 CA의 경우 <ECDHE CA>를 CN(일반 이름)으로 임의의 문자열로 교체할 수 있습니다.

  3. CA의 개인 키에 대해 보안 권한을 설정합니다. 예를 들면 다음과 같습니다.

    # chown <root>:<root> <ca.key>
    # chmod 600 <ca.key>

다음 단계

  • 자체 서명된 CA 인증서를 클라이언트 시스템의 신뢰 앵커로 사용하려면 CA 인증서를 클라이언트에 복사하여 클라이언트의 시스템 전체 신뢰 저장소에 root 로 추가합니다.

    # trust anchor <ca.crt>

    자세한 내용은 3장. 공유 시스템 인증서 사용를 참조하십시오.

검증

  1. CSR(인증서 서명 요청)을 생성하고 CA를 사용하여 요청에 서명합니다. CA는 CSR을 기반으로 인증서를 성공적으로 생성해야 합니다. 예를 들면 다음과 같습니다.

    $ openssl x509 -req -in <client-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <client-cert> -out <client-cert.crt>
    Signature ok
    subject=C = US, O = Example Organization, CN = server.example.com
    Getting CA Private Key

    자세한 내용은 2.5절. “개인 CA를 사용하여 OpenSSL과 함께 CSR의 인증서 발행”를 참조하십시오.

  2. 자체 서명된 CA에 대한 기본 정보를 표시합니다.

    $ openssl x509 -in <ca.crt> -text -noout
    Certificate:
    …
            X509v3 extensions:
                …
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign, CRL Sign
    …
  3. 개인 키의 일관성을 확인합니다.

    $ openssl pkey -check -in <ca.key>
    Key is valid
    -----BEGIN PRIVATE KEY-----
    MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcagSaTEBn74xZAwO
    18wRpXoCVC9vcPki7WlT+gnmCI+hRANCAARb9NxIvkaVjFhOoZbGp/HtIQxbM78E
    lwbDP0BI624xBJ8gK68ogSaq2x4SdezFdV1gNeKScDcU+Pj2pELldmdF
    -----END PRIVATE KEY-----

추가 리소스

  • OpenSSL(1), ca(1), genpkey(1), x509(1), 및 req(1) 매뉴얼 페이지
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.