Oracle® Solaris 11.2 패키지 저장소 복사 및 만들기

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

저장소 액세스에 사용되는 클라이언트 인증서 만들기

CA를 생성한 후 클라이언트 인증서를 생성할 수 있습니다.

인증서 서명 요청 생성

클라이언트 인증서를 생성하려면 CSR(인증서 서명 요청)을 생성합니다. CSR에는 서버에 안전하게 전달해야 하는 모든 정보가 포함되어 있습니다.

클라이언트가 자신이 발급한 유효한 인증서를 가지고 있는지만 확인하려는 경우에는 정보를 인코딩할 필요가 없습니다. 클라이언트가 해당 인증서를 서버에 제공하면 서버가 CA에서 인증서를 검증하여 클라이언트 인증서가 사용자에 의해 생성되었는지 확인합니다. 그러나 SSL에는 CSR에 대한 subject가 필요합니다. 다른 정보를 서버에 전달할 필요가 없는 경우 subject를 인증서가 발급된 국가로 설정하면 됩니다. 예를 들어, subjectC=US로 설정할 수 있습니다.

모범 사례는 클라이언트의 사용자 이름을 인증서에 인코딩하여 서버가 클라이언트를 식별할 수 있게 하는 것입니다. 사용자 이름은 저장소 액세스 권한을 부여할 사용자의 이름입니다. 이 목적으로 CN을 사용할 수 있습니다. 인증서 키 추출의 설명에 따라 최종 인증서에 대한 키를 찾고 추출할 수 있도록 이 CSR에 대한 레이블을 지정합니다.

다음 명령을 사용하여 CSR을 생성합니다.

$ pktool gencsr subject="C=US,CN=username" label=label format=pem \
outcsr=cert.csr

다음 OpenSSL 명령을 사용하여 cert.csr 파일에서 CSR을 검사합니다.

$ openssl req -text -in cert.csr

CSR에 서명

인증서를 만들려면 CA가 CSR에 서명해야 합니다. CSR에 서명하려면 다음 정보를 제공합니다.

  • 클라이언트 인증서에 대한 인증 기관 만들기와 같이 gencert 명령을 사용하여 CA를 만들 때 subject에 사용한 것과 동일한 문자열로 인증서 issuer를 설정합니다.

  • 16진수 일련 번호로 설정합니다. 이 예에서는 CA 일련 번호가 0x01로 설정되었으므로 첫번째 클라이언트 인증서에 일련 번호 0x02가 지정되어야 합니다. 새 클라이언트 인증서를 생성할 때마다 일련 번호를 증분시킵니다.

    각 CA와 종속 클라이언트 인증서에는 해당 일련 번호 세트가 있습니다. 키 저장소에 여러 CA가 구성되어 있는 경우 클라이언트 인증서 일련 번호를 올바르게 설정해야 합니다.

  • signkey를 키 저장소의 CA 레이블로 설정합니다.

  • outcert를 인증서 파일의 이름으로 설정합니다. 모범 사례는 액세스할 저장소를 따서 인증서와 키의 이름을 지정하는 것입니다.

다음 명령을 사용하여 CSR에 서명합니다.

$ pktool signcsr signkey=CAlabel csr=cert.csr  \
serial=0x02 outcert=reponame.crt.pem issuer="CN=name"

reponame.crt.pem 파일에 인증서가 생성됩니다. 다음 OpenSSL 명령을 사용하여 인증서를 검사합니다.

$ openssl x509 -text -in reponame.crt.pem

인증서 키 추출

키 저장소에서 이 인증서에 대한 키를 추출합니다. 인증서 서명 요청 생성에서 gencsr을 실행하여 CSR을 생성할 때 지정한 것과 동일한 레이블 값으로 label을 설정합니다. 다음 명령을 사용하여 키 저장소에서 키를 내보냅니다.

$ pktool export objtype=key label=label outformat=pem \
outfile=reponame.key.pem

SSL로 보호된 저장소에 액세스해야 하는 클라이언트 시스템에 인증서와 키를 전송합니다.

클라이언트 시스템이 보호된 저장소에 액세스하도록 설정

SSL로 보호된 저장소에 액세스하려면 클라이언트 시스템에 인증서 및 키 복사본이 있어야 하며 게시자 구성에 인증서와 키를 지정해야 합니다.

각 클라이언트 시스템에 인증서(reponame.crt.pem)와 키(reponame.key.pem)를 복사합니다. 예를 들어, 각 클라이언트의 /var/pkg/ssl 디렉토리에 복사할 수 있습니다.

다음 명령을 사용하여 게시자 구성에 생성된 인증서와 키를 지정합니다.

$ pkg set-publisher -k reponame.key.pem -c reponame.crt.pem \
-p https://repolocation

SSL 인증은 HTTPS 저장소 URI에 대해서만 지원됩니다. 파일 저장소 URI에 대한 SSL 인증은 지원되지 않습니다.