이 절차에서는 공개 키 인증서를 만들고 이 인증서에 서명합니다. 개인 키와 인증서는 IKEv2의 PKCS #11 softtoken 키 저장소에 저장됩니다. 공개 키 인증서를 IKE 피어로 보내면 IKE 피어에서 자체의 공개 인증서를 보내옵니다.
자체 서명된 인증서를 사용하는 IKE 시스템 모두에서 이 절차를 수행합니다.
시작하기 전에
인증서를 사용하려면 IKEv2 공개 키 인증서에 대한 키 저장소를 만들고 사용하는 방법을 완료해야 합니다.
Network IPsec Management 권한 프로파일에 지정된 관리자여야 합니다. 프로파일 셸을 사용하는 중이어야 합니다. 자세한 내용은 Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.
원격으로 관리하는 경우 Example 7–1 및 Oracle Solaris 11.2의 보안 셸 액세스 관리 의 보안 셸을 사용하여 ZFS를 원격으로 관리하는 방법에서 보안 원격 로그인 지침을 참조하십시오.
ikev2cert gencert 명령의 인수에 대한 설명은 pktool(1) 매뉴얼 페이지에서 pktool gencert keystore=pkcs11 하위 명령을 검토하십시오.
subject 인수의 형식은 IKE에서 공개 키 인증서 사용을 참조하십시오.
# pfbash # ikev2cert gencert \ label="ITpartym" \ subject="O=exampleco, OU=IT, C=US, CN=partym" \ serial=0x87654321 keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
다음 오류 메시지는 PIN을 잘못 입력하거나 키 저장소가 초기화되지 않았음을 나타냅니다.
Error creating certificate and keypair: keystore error: CKR_PIN_INCORRECT libkmf error: KMF_ERR_AUTH_FAILED Error creating certificate and keypair: keystore error: CKR_PIN_EXPIRED: PIN expired and must be changed libkmf error: KMF_ERR_BAD_PARAMETER: invalid parameter
# ikev2cert gencert \ label=ITenigma \ subject="O=exampleco, OU=IT, C=US, CN=enigma" \ serial=0x86428642 keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
enigma # /usr/sbin/ikev2cert list objtype=both Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric private keys: 1) RSA ITenigma Asymmetric public keys: 1) RSA ITenigma Certificates: 1) X.509 certificate Label: ITenigma Subject: C=US, O=exampleco, OU=IT, CN=enigma Issuer: C=US, O=exampleco, OU=IT, CN=enigma Not Before: April 10 21:49:00 2014 GMT Not After: April 10 21:49:00 2015 GMT Serial: 0x86426420 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: 34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc SHA1 Certificate Fingerprint: 68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30
outformat=pem 옵션을 지정하면 공개 인증서가 직접 가져오기 적합한 형식의 파일에 저장됩니다. 레이블은 키 저장소에서 인증서를 식별합니다.
# cd /tmp # ikev2cert export objtype=cert outformat=pem outfile=filename label=label Enter PIN for Sun Software PKCS#11 softtoken:xxxxxxxx
예를 들어, 두 시스템을 모두 관리하는 경우 sftp 명령을 사용하여 다른 시스템에서 인증서를 가져옵니다.
enigma # sftp jdoe@partym:/tmp/ITpartym.pem /tmp/ITpartym.pem.cert partym # sftp jdoe@enigma:/tmp/ITenigma.pem /tmp/ITenigma.pem.cert
암호를 입력하라는 메시지가 표시됩니다. 이 예에서 jdoe가 암호를 제공해야 합니다.
인증서를 키 저장소로 로드하기 전에 적절한 인증서를 받았는지 확인하려고 합니다.
예를 들어, partym 관리자는 partym의 인증서가 포함된 파일의 다이제스트를 다른 관리자에게 전자 메일로 보냅니다. enigma 관리자는 enigma 인증서 파일의 다이제스트를 전자 메일로 보냅니다.
partym # digest -a sha1 /tmp/ITpartym.pem c6dbef4136c0141ae62110246f288e5546a59d86 enigma # digest -a sha1 ITenigma.pem 6b288a6a6129d53a45057065bd02b35d7d299b3a
enigma # digest -a sha1 /tmp/ITpartym.pem.cert c6dbef4136c0141ae62110246f288e5546a59d86 partym # digest -a sha1 /tmp/ITenigma.pem.cert 6b288a6a6129d53a45057065bd02b35d7d299b3a
다이제스트가 일치해야 합니다. 일치하지 않는 경우 파일을 키 저장소로 가져오지 마십시오. 인증서 유효성을 확인하는 다른 방법은 Example 9–3을 참조하십시오.
인증서를 키 저장소로 가져올 때 시스템에서 인증서를 고유하게 식별하는 레이블을 지정해야 합니다. 레이블은 공개 키를 공개 키 인증서와 연결합니다.
enigma# ikev2cert import label=ITpartym1 infile=/tmp/ITpartym.pem.cert
partym# ikev2cert import label=ITenigma1 infile=/tmp/ITenigma.pem.cert
목록을 Step 2의 목록과 비교합니다. 예를 들어, enigma 키 저장소에서는 partym 인증서가 추가되었습니다.
enigma # /usr/sbin/ikev2cert list objtype=both Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric private keys: 1) RSA ITenigma Asymmetric public keys: 1) RSA ITenigma Certificates: 1) X.509 certificate Label: ITenigma Subject: C=US, O=exampleco, OU=IT, CN=enigma Issuer: C=US, O=exampleco, OU=IT, CN=enigma Not Before: April 10 21:49:00 2014 GMT Not After: April 10 21:49:00 2015 GMT Serial: 0x86426420 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: 34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc SHA1 Certificate Fingerprint: 68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30 2) X.509 certificate Label: ITpartym1 Subject: C=US, O=exampleco, OU=IT, CN=partym Issuer: C=US, O=exampleco, OU=IT, CN=partym Not Before: April 10 21:40:00 2014 GMT Not After: April 10 21:40:00 2015 GMT Serial: 0x87654321 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: ae:d9:c8:a4:19:68:fe:2d:6c:c2:9a:b6:06:55:b5:b5:d9:d9:45:c6 SHA1 Certificate Fingerprint: 83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b
pfedit 명령을 사용하여 /etc/inet/ike/ikev2.config 파일을 편집합니다.
## ... Global transform that applies to any rule without a declared transform ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes } ## ... Any self-signed ## end-entity certificates must be present in the keystore or ## they will not be trusted. { label "partym-enigma" auth_method cert local_id DN = "O=exampleco, OU=IT, C=US, CN=partym" remote_id DN = "O=exampleco, OU=IT, C=US, CN=enigma" } ...
원격 매개변수에는 partym 인증서의 DN을 값으로 사용합니다. label 키워드가 로컬 시스템에서 고유한지 확인합니다.
… ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes } … { label "enigma-partym" auth_method cert local_id DN = "O=exampleco, OU=IT, C=US, CN=enigma" remote_id DN = "O=exampleco, OU=IT, C=US, CN=partym" } ...
# /usr/lib/inet/inikev2.d -c
계속하기 전에 오타나 오류를 수정합니다.
# svcs ikev2 STATE STIME FMRI disabled Sep_07 svc:/network/ipsec/ike:ikev2
partym # svcadm enable ipsec/ike:ikev2 enigma # svcadm enable ipsec/ike:ikev2
이 예에서 관리자는 인증서가 2년간 유효하도록 지정합니다.
# ikev2cert gencert \ > label=DBAuditV \ > serial=0x12893467235412 \ > subject="O=exampleco, OU=DB, C=US, CN=AuditVault" \ > altname=EMAIL=auditV@example.com \ > keytype=ec curve=secp521r1 hash=sha512 \ > lifetime=2-year예 9-3 지문으로 공개 키 인증서 확인
이 예에서 관리자는 인증서 지문을 사용하여 인증서를 확인합니다. 이 방법의 단점은 관리자가 피어의 인증서를 키 저장소로 가져와야만 지문을 볼 수 있다는 점입니다.
관리자는 인증서를 가져오고, ikev2cert list objtype=cert 명령으로 인증서를 나열한 다음 인증서 지문을 출력에서 복사하여 다른 시스템 관리자에게 보냅니다.
SHA1 Certificate Fingerprint: 83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b
확인에 실패하는 경우 인증서를 가져온 관리자가 인증서와 인증서의 공개 키를 키 저장소에서 제거해야 합니다.
# ikev2cert delete label=label-name Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx 1 public key(s) found, do you want to delete them (y/N) ? y 1 certificate(s) found, do you want to delete them (y/N) ? y
다음 단계
IPsec 정책 설정을 완료하지 않았으면 IPsec 정책을 사용으로 설정하거나 새로 고치는 IPsec 절차로 돌아가십시오. VPN을 보호하는 IPsec 정책의 예는 IPsec를 사용하여 VPN 보호를 참조하십시오. 다른 IPsec 정책 예는 IPsec을 사용하여 두 서버 간의 네트워크 트래픽을 보호하는 방법을 참조하십시오.