이 절차에서는 인증서 쌍이라고 하는 공개/개인 키와 인증서를 만듭니다. 개인 키는 로컬 인증서 데이터베이스의 디스크에 저장되며 ikecert certlocal 명령을 사용하여 참조할 수 있습니다. 공개 키와 인증서는 공개 인증서 데이터베이스에 저장됩니다. 이는 ikecert certdb 명령을 사용하여 참조할 수 있습니다. 피어 시스템과 공개 인증서를 교환합니다. 두 인증서는 IKEv1 전송을 인증하는 데 사용됩니다.
자체 서명된 인증서는 CA의 공개 인증서보다 오버헤드가 적지만 확장이 어렵습니다. CA에서 발행한 인증서와 달리 자체 서명된 인증서는 인증서를 교환한 두 관리자가 확인해야 합니다.
시작하기 전에
Network IPsec Management 권한 프로파일에 지정된 관리자여야 합니다. 자세한 내용은 Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.
원격으로 관리하는 경우 Example 7–1 및 Oracle Solaris 11.2의 보안 셸 액세스 관리 의 보안 셸을 사용하여 ZFS를 원격으로 관리하는 방법에서 보안 원격 로그인 지침을 참조하십시오.
ikecert certlocal 명령의 인수는 ikecert(1M) 매뉴얼 페이지를 참조하십시오.
# ikecert certlocal -ks -m 2048 -t rsa-sha512 \ -D "O=exampleco, OU=IT, C=US, CN=partym" \ -A IP=192.168.13.213 Creating private key. Certificate added to database. -----BEGIN X509 CERTIFICATE----- MIIC1TCCAb2gAwIBAgIEfdZgKjANBgkqhkiG9w0BAQUFADAaMRgwFgYDVQQDEw9T a...+ zBGi4QkNdI3f -----END X509 CERTIFICATE-----
구문 설명
자체 서명된 인증서를 만듭니다.
키의 크기를 지정합니다.
사용할 알고리즘의 유형을 지정합니다.
인증서 주체의 X.509 DN(고유 이름)을 지정합니다. 예는 IKE에서 공개 키 인증서 사용을 참조하십시오.
인증서의 대체 이름 또는 별명을 지정합니다. altname은 tag=value 형식입니다. 유효한 태그는 IP, DNS, email 및 DN입니다.
# ikecert certlocal -ks -m 2048 -t rsa-sha512 \ -D "O=exampleco, OU=IT, C=US, CN=enigma" \ -A IP=192.168.116.16 Creating private key. Certificate added to database. -----BEGIN X509 CERTIFICATE----- MIIC1TCCAb2gAwIBAgIEBl5JnjANBgkqhkiG9w0BAQUFADAaMRgwFgYDVQQDEw9T ... y85m6LHJYtC6 -----END X509 CERTIFICATE-----
출력은 인증서 공개 부분의 인코딩된 버전입니다. 이 인증서는 전자 메일 메시지에 붙여 넣어도 안전합니다. 수신자는 Step 4와 같이 올바른 인증서를 설치했는지 대역 외 연결에서 확인해야 합니다.
To: admin@enigma.ja.example.com From: admin@party.us.example.com Message: -----BEGIN X509 CERTIFICATE----- MIIC1TCCAb2gAwIBAgIEfdZgKjANBgkqhkiG9w0BAQUFADAaMRgwFgYDVQQDEw9T a...+ zBGi4QkNdI3f -----END X509 CERTIFICATE------
To: admin@party.us.example.com From: admin@enigma.ja.example.com Message: ----BEGIN X509 CERTIFICATE----- MIIC1TCCAb2gAwIBAgIEBl5JnjANBgkqhkiG9w0BAQUFADAaMRgwFgYDVQQDEw9T ... y85m6LHJYtC6 -----END X509 CERTIFICATE-----
# ikecert certdb -a < /tmp/certificate.eml
이 명령은 BEGIN 태그와 END 태그 사이의 텍스트를 가져옵니다.
예를 들어, 다른 관리자와 전화 통화를 통해 수신한 공개 인증서의 해시가 해당 관리자만 가진 개인 인증서의 해시와 일치하는지 확인할 수 있습니다.
다음 예에서 Note 1은 슬롯 0에 있는 인증서의 distinguished name(DN, 고유 이름)을 나타냅니다. 슬롯 0에 있는 개인 인증서가 동일한 해시(주 3 참조)를 가지므로 이러한 인증서는 동일한 인증서 쌍입니다. 공개 인증서가 작동하려면 일치 쌍이 있어야 합니다. certdb 하위 명령은 공개 부분을 나열하며 certlocal 하위 명령은 개인 부분을 나열합니다.
partym # ikecert certdb -l Certificate Slot Name: 0 Key Type: rsa (Private key in certlocal slot 0) Subject Name: <O=exampleco, OU=IT, C=US, CN=partym>Note 1 Key Size: 2048 Public key hash: 80829EC52FC5BA910F4764076C20FDCF Certificate Slot Name: 1 Key Type: rsa (Private key in certlocal slot 1) Subject Name: <O=exampleco, OU=IT, C=US, CN=Ada> Key Size: 2048 Public key hash: FEA65C5387BBF3B2C8F16C019FEBC388 partym # ikecert certlocal -l Local ID Slot Name: 0 Key Type: rsa Key Size: 2048 Public key hash: 80829EC52FC5BA910F4764076C20FDCFNote 3 Local ID Slot Name: 1 Key Type: rsa-sha512 Key Size: 2048 Public key hash: FEA65C5387BBF3B2C8F16C019FEBC388 Local ID Slot Name: 2 Key Type: rsa Key Size: 2048 Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
이 검사에서 partym 시스템에 유효한 인증서 쌍이 있는 것이 확인되었습니다.
전화를 통해 공개 키 해시를 확인할 수 있습니다.
이전 단계에서 확인된 partym의 Note 3 해시를 enigma의 Note 4와 비교합니다.
enigma # ikecert certdb -l Certificate Slot Name: 0 Key Type: rsa (Private key in certlocal slot 0) Subject Name: <O=exampleco, OU=IT, C=US, CN=Ada> Key Size: 2048 Public key hash: 2239A6A127F88EE0CB40F7C24A65B818 Certificate Slot Name: 1 Key Type: rsa (Private key in certlocal slot 1) Subject Name: <O=exampleco, OU=IT, C=US, CN=enigma> Key Size: 2048 Public key hash: FEA65C5387BBF3B2C8F16C019FEBC388 Certificate Slot Name: 2 Key Type: rsa (Private key in certlocal slot 2) Subject Name: <O=exampleco, OU=IT, C=US, CN=partym> Key Size: 2048 Public key hash: 80829EC52FC5BA910F4764076C20FDCFNote 4
enigma의 공개 인증서 데이터베이스에 저장된 마지막 인증서의 공개 키 해시 및 주체 이름이 이전 단계의 partym에 대한 개인 인증서와 일치합니다.
인증서가 인식되도록 /etc/inet/ike/config 파일을 편집합니다.
원격 시스템의 관리자가 cert_trust, remote_addr 및 remote_id 매개변수의 값을 제공합니다.
# Explicitly trust the self-signed certs # that we verified out of band. The local certificate # is implicitly trusted because we have access to the private key. cert_trust "O=exampleco, OU=IT, C=US, CN=enigma" # We could also use the Alternate name of the certificate, # if it was created with one. In this example, the Alternate Name # is in the format of an IP address: # cert_trust "192.168.116.16" ## Parameters that may also show up in rules. p1_xform { auth_method preshared oakley_group 5 auth_alg sha256 encr_alg 3des } p2_pfs 5 { label "US-partym to JA-enigma" local_id_type dn local_id "O=exampleco, OU=IT, C=US, CN=partym" remote_id "O=exampleco, OU=IT, C=US, CN=enigma" local_addr 192.168.13.213 # We could explicitly enter the peer's IP address here, but we don't need # to do this with certificates, so use a wildcard address. The wildcard # allows the remote device to be mobile or behind a NAT box remote_addr 0.0.0.0/0 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha256 encr_alg aes} }
원격 매개변수의 경우 partym 값을 사용합니다. label 키워드가 로컬 시스템에서 고유한지 확인합니다.
… { label "JA-enigma to US-partym" local_id_type dn local_id "O=exampleco, OU=IT, C=US, CN=enigma" remote_id "O=exampleco, OU=IT, C=US, CN=partym" local_addr 192.168.116.16 remote_addr 0.0.0.0/0 p1_xform {auth_method rsa_sig oakley_group 2 auth_alg sha256 encr_alg aes} }
partym # svcadm enable ipsec/ike:default enigma # svcadm enable ipsec/ike
다음 단계
IPsec 정책 설정을 완료하지 않았으면 IPsec 정책을 사용으로 설정하거나 새로 고치는 IPsec 절차로 돌아가십시오. VPN을 보호하는 IPsec 정책의 예는 IPsec를 사용하여 VPN 보호를 참조하십시오. 다른 IPsec 정책 예는 IPsec을 사용하여 두 서버 간의 네트워크 트래픽을 보호하는 방법을 참조하십시오.