26.5. Ansible 플레이북을 사용하여 IdM 서비스 항목에 외부 서명 인증서가 있는지 확인

ansible-freeipa service 모듈을 사용하여 외부 CA(인증 기관)에서 발급한 인증서가 HTTP 서비스의 IdM 항목에 연결되어 있는지 확인하려면 다음 절차를 따르십시오. IdM CA가 아닌 외부 CA가 서명한 HTTP 서비스의 인증서가 있으면 IdM CA에서 자체 서명된 인증서를 사용하는 경우 특히 유용합니다.

사전 요구 사항

절차

  1. 인벤토리 파일을 생성합니다(예: inventory.file ):

    $ touch inventory.file
  2. inventory.file 을 열고 [ipaserver] 섹션에서 설정할 IdM 서버를 정의합니다. 예를 들어, server.idm.example.com 을 구성하도록 Ansible에 지시하려면 다음을 입력합니다.

    [ipaserver]
    server.idm.example.com
  3. /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
  4. 선택 사항: 인증서가 PEM(개인 정보 보호 보안 메일) 형식인 경우 CLI(명령줄 인터페이스)를 통해 더 쉽게 처리할 수 있도록 인증서가 Distinguished Encoding Rules(DER) 형식으로 변환합니다.

    $ openssl x509 -outform der -in cert1.pem -out cert1.der
  5. base64 명령을 사용하여 DER 파일을 표준 출력으로 디코딩합니다. 래핑을 비활성화하려면 -w0 옵션을 사용합니다.

    $ base64 cert1.der -w0
    MIIC/zCCAeegAwIBAgIUV74O+4kXeg21o4vxfRRtyJm...
  6. 인증서를 표준 출력에서 클립보드로 복사합니다.
  7. /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
  8. 파일을 수정합니다.

    • 인증서 변수를 사용하여 정의한 인증서 를 CLI에서 복사한 인증서로 교체합니다. 표시된 대로 "|" pipe 문자와 함께 certificate: 변수를 사용하는 경우 한 줄에 입력하도록 하는 대신 인증서 THIS WAY를 입력할 수 있습니다. 이렇게 하면 인증서 읽기가 더 쉬워집니다.
    • ipaadmin_password 변수에서 정의한 IdM 관리자 암호를 변경합니다.
    • name 변수로 정의된 HTTP 서비스가 실행 중인 IdM 클라이언트의 이름을 변경합니다.
    • 다른 관련 변수를 변경합니다.
  9. 파일을 저장하고 종료합니다.
  10. Ansible 플레이북을 실행합니다. 플레이북 파일, 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

검증 단계

  1. IdM 관리자로 IdM 웹 UI에 로그인합니다.
  2. IdentityServices 로 이동합니다.
  3. 새로 추가된 인증서(예: HTTP/client.idm.example.com )가 있는 서비스 이름을 클릭합니다.

오른쪽의 Service Certificate 섹션에서 새로 추가된 인증서를 볼 수 있습니다.