86.5. Ansible Playbook을 사용하여 IdM 서비스 항목에 외부 서명된 인증서가 있는지 확인
ansible-freeipa
service
모듈을 사용하여 외부 CA(인증 기관)에서 발급한 인증서가 HTTP 서비스의 IdM 항목에 연결되어 있는지 확인하려면 다음 절차를 따르십시오. IdM CA가 자체 서명된 인증서를 사용하는 경우 IdM CA가 아닌 외부 CA에서 서명한 HTTP 서비스의 인증서를 보유하는 것이 특히 유용합니다.
사전 요구 사항
- 호스트에 HTTP 서비스를 설치했습니다.
- HTTP 서비스를 IdM에 등록했습니다.
- IdM 관리자 암호가 있습니다.
- 주체가 HTTP 서비스의 주체에 해당하는 외부 서명 인증서가 있습니다.
절차
인벤토리 파일을 생성합니다(예:
inventory.file
:$ touch inventory.file
inventory.file
을 열고[ipaserver]
섹션에서 구성할 IdM 서버를 정의합니다. 예를 들어 server.idm.example.com을 구성하도록 Ansible에 지시하려면 다음을 입력합니다.[ipaserver] server.idm.example.com
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present.yml 파일의 복사본을 만듭니다.
예를 들면 다음과 같습니다.$ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
선택 사항: 인증서가 PEM(개인 정보 보호 강화 메일) 형식인 경우 CLI(명령줄 인터페이스)를 통해 더 쉽게 처리할 수 있도록 인증서를 DER(고급 인코딩 규칙) 형식으로 변환합니다.
$ openssl x509 -outform der -in cert1.pem -out cert1.der
base64
명령을 사용하여DER
파일을 표준 출력으로 디코딩합니다. w0
옵션을 사용하여 래핑을 비활성화합니다.$ base64 cert1.der -w0 MIIC/zCCAeegAwIBAgIUV74O+4kXeg21o4vxfRRtyJm...
- 인증서를 표준 출력에서 클립보드로 복사합니다.
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
파일을 열어 내용을 편집하고 봅니다.--- - name: Service certificate present. hosts: ipaserver gather_facts: false vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure service certificate is present - ipaservice: ipaadmin_password: "{{ ipaadmin_password }}" name: HTTP/client.idm.example.com certificate: | - MIICBjCCAW8CFHnm32VcXaUDGfEGdDL/... [...] action: member state: present
파일을 조정합니다.
-
인증서 변수를 사용하여 정의한
인증서를
CLI에서 복사한 인증서로 바꿉니다. 표시된 대로 "|" 파이프 문자가 있는certificate:
변수를 사용하는 경우 한 줄에 입력하지 않고 인증서 THIS WAY를 입력할 수 있습니다. 이렇게 하면 인증서를 더 쉽게 읽을 수 있습니다. -
ipaadmin_password
변수에 정의된 IdM 관리자 암호를 변경합니다. -
name 변수에서 정의한 HTTP 서비스가 실행 중인 IdM 클라이언트의
이름을
변경합니다. - 기타 관련 변수를 변경합니다.
-
인증서 변수를 사용하여 정의한
- 파일을 저장하고 종료합니다.
Ansible 플레이북을 실행합니다. Playbook 파일, secret.yml 파일을 보호하는 암호를 저장하는 파일, 인벤토리 파일을 지정합니다.
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-certificate-present-copy.yml
검증 단계
- IdM 관리자로 IdM 웹 UI에 로그인합니다.
-
ID
서비스로
이동합니다. - 새로 추가된 인증서(예: HTTP/client.idm.example.com )를 사용하여 서비스 이름을 클릭합니다.
오른쪽에 있는 Service Certificate(서비스 인증서
) 섹션에서 새로 추가된 인증서를 볼 수 있습니다.