3장. Ansible을 사용하여 IdM 인증서 관리
ansible-freeipa
ipacert
모듈을 사용하여 IdM(Identity Management) 사용자, 호스트 및 서비스에 대한 SSL 인증서를 요청, 취소 및 검색할 수 있습니다. 보류 중인 인증서를 복원할 수도 있습니다.
3.1. Ansible을 사용하여 IdM 호스트, 서비스 및 사용자에 대한 SSL 인증서 요청
ansible-freeipa
ipacert
모듈을 사용하여 IdM(Identity Management) 사용자, 호스트 및 서비스에 대한 SSL 인증서를 요청할 수 있습니다. 그런 다음 이러한 인증서를 사용하여 IdM에 인증할 수 있습니다.
Ansible 플레이북을 사용하여 IdM 인증 기관(CA)에서 HTTP 서버의 인증서를 요청하려면 다음 절차를 완료합니다.
사전 요구 사항
제어 노드에서 다음을 수행합니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
ansible-freeipa
패키지가 설치되어 있습니다. - ~/MyPlaybooks/ 디렉터리에 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
-
ipaadmin_password
를 secret.yml Ansible vault에 저장했습니다.
- IdM 배포에 통합 CA가 있습니다.
절차
사용자, 호스트 또는 서비스에 대한 CSR(인증서 서명 요청)을 생성합니다. 예를 들어
openssl
유틸리티를 사용하여 client.idm.example.com에서 실행되는HTTP
서비스에 대한 CSR을 생성하려면 다음을 입력합니다.# openssl req -new -newkey rsa:2048 -days 365 -nodes -keyout new.key -out new.csr -subj '/CN=client.idm.example.com,O=IDM.EXAMPLE.COM'
결과적으로 CSR은 new.csr 에 저장됩니다.
다음 내용으로 Ansible 플레이북 파일 request-certificate.yml 을 생성합니다.
--- - name: Playbook to request a certificate hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Request a certificate for a web server ipacert: ipaadmin_password: "{{ ipaadmin_password }}" state: requested csr: | -----BEGIN CERTIFICATE REQUEST----- MIGYMEwCAQAwGTEXMBUGA1UEAwwOZnJlZWlwYSBydWxlcyEwKjAFBgMrZXADIQBs HlqIr4b/XNK+K8QLJKIzfvuNK0buBhLz3LAzY7QDEqAAMAUGAytlcANBAF4oSCbA 5aIPukCidnZJdr491G4LBE+URecYXsPknwYb+V+ONnf5ycZHyaFv+jkUBFGFeDgU SYaXm/gF8cDYjQI= -----END CERTIFICATE REQUEST----- principal: HTTP/client.idm.example.com register: cert
인증서 요청을 new.csr 의 CSR으로 바꿉니다.
인증서를 요청합니다.
$ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/hosts <path_to_playbooks_directory>/request-certificate.yml