74장. 웹 서버 및 LDAP 서버 인증서가 전체 IdM 배포에 만료된 경우 교체
IdM(Identity Management)은 다음 서비스 인증서를 사용합니다.
-
LDAP(또는
디렉터리
) 서버 인증서 -
웹(또는
httpd
) 서버 인증서 - PKINIT 인증서
CA가 없는 IdM 배포에서 certmonger
는 기본적으로 IdM 서비스 인증서를 추적하거나 만료에 대한 알림을 받지 않습니다. IdM 시스템 관리자가 이러한 인증서에 대한 알림을 수동으로 설정하지 않거나 인증서를 추적하도록 certmonger
를 구성하지 않으면 인증서가 통지 없이 만료됩니다.
server.idm.example.com IdM 서버에서 실행 중인 httpd
및 LDAP 서비스에 대해 만료된 인증서를 수동으로 교체하려면 다음 절차를 따르십시오.
HTTP 및 LDAP 서비스 인증서에는 서로 다른 IdM 서버에 다른 키 쌍과 주체 이름이 있습니다. 따라서 각 IdM 서버의 인증서를 개별적으로 갱신해야 합니다.
사전 요구 사항
- HTTP 및 LDAP 인증서는 토폴로지의 모든 IdM 복제본에서 만료되었습니다. 그러지 않은 경우 IdM 복제본에 아직 만료되지 않은 경우 웹 서버 및 LDAP 서버 인증서 교체를 참조하십시오.
-
IdM 서버 및 복제본에 대한
루트
액세스 권한이 있어야 합니다. -
Directory Manager
암호를 알고 있습니다. 다음 디렉터리 및 파일의 백업을 생성했습니다.
-
/etc/dirsrv/slapd-IDM-EXAMPLE-COM/
-
/etc/httpd/alias
-
/var/lib/certmonger
-
/var/lib/ipa/certs/
-
절차
-
(선택 사항)
/var/lib/ipa/private
및 /var/lib/ipa/passwds의
백업을 수행합니다. 동일한 CA를 사용하여 새 인증서에 서명하지 않거나 이미 설치된 CA 인증서가 더 이상 유효하지 않은 경우 외부 CA의 유효한 CA 인증서 체인이 포함된 파일로 로컬 데이터베이스의 외부 CA에 대한 정보를 업데이트합니다. 이 파일은 PEM 및 DER 인증서, PKCS#7 인증서 체인, PKCS##8 및 원시 개인 키, PKCS#12 형식으로 허용됩니다.
추가 CA 인증서로 ca_certificate_chain_file.crt 에서 사용 가능한 인증서를 IdM에 설치합니다.
ipa-cacert-manage install ca_certificate_chain_file.crt
# ipa-cacert-manage install ca_certificate_chain_file.crt
Copy to Clipboard Copied! ca_certicate_chain_file.crt의 인증서로 로컬 IdM 인증서 데이터베이스를 업데이트하십시오.
ipa-certupdate
# ipa-certupdate
Copy to Clipboard Copied!
httpd
및 LDAP에 대한 인증서를 요청합니다.OpenSSL
유틸리티를 사용하여 IdM 인스턴스에서 타사 CA로 실행되는 Apache 웹 서버에 대한 CSR(인증서 서명 요청)을 생성합니다.새 개인 키 생성은 선택 사항입니다. 원래 개인 키가 여전히 있는 경우
openssl req
명령과 함께-in
옵션을 사용하여 요청을 읽을 입력 파일 이름을 지정할 수 있습니다.openssl req -new -nodes -in /var/lib/ipa/private/httpd.key -out /tmp/http.csr -addext 'subjectAltName = DNS:_server.idm.example.com_, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:HTTP/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
$ openssl req -new -nodes -in /var/lib/ipa/private/httpd.key -out /tmp/http.csr -addext 'subjectAltName = DNS:_server.idm.example.com_, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:HTTP/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
Copy to Clipboard Copied! 새 키를 생성하려면 다음을 수행합니다.
openssl req -new -newkey rsa:2048 -nodes -keyout /var/lib/ipa/private/httpd.key -out /tmp/http.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:HTTP/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
$ openssl req -new -newkey rsa:2048 -nodes -keyout /var/lib/ipa/private/httpd.key -out /tmp/http.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:HTTP/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
Copy to Clipboard Copied!
OpenSSL
유틸리티를 사용하여 타사 CA에 대한 IdM 인스턴스에서 실행되는 LDAP 서버에 대한 CSR(인증서 서명 요청)을 생성합니다.openssl req -new -newkey rsa:2048 -nodes -keyout ~/ldap.key -out /tmp/ldap.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:ldap/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
$ openssl req -new -newkey rsa:2048 -nodes -keyout ~/ldap.key -out /tmp/ldap.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:ldap/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
Copy to Clipboard Copied! -
CSRs, /tmp/http.csr 및 tmp/ldap.csr 를 외부 CA에 제출하고
httpd
의 인증서와 LDAP의 인증서를 가져옵니다. 프로세스는 외부 CA로 사용할 서비스에 따라 다릅니다.
httpd
인증서 설치 :cp /path/to/httpd.crt /var/lib/ipa/certs/
# cp /path/to/httpd.crt /var/lib/ipa/certs/
Copy to Clipboard Copied! LDAP 인증서를 NSS 데이터베이스에 설치합니다.
[선택 사항] 사용 가능한 인증서를 나열합니다.
certutil -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -L
# certutil -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Server-Cert u,u,u
Copy to Clipboard Copied! 기본 인증서 닉네임은 Server-Cert 이지만 다른 이름을 적용할 수 있습니다.
이전 단계에서 인증서 nickname을 사용하여 NSSDB(
NSSDB
)에서 유효하지 않은 이전 인증서를 제거합니다.certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n 'Server-Cert' -f /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
# certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n 'Server-Cert' -f /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
Copy to Clipboard Copied! NSSDB
로 가져오기 프로세스를 쉽게 하기 위해 PKCS12 파일을 만듭니다.openssl pkcs12 -export -in ldap.crt -inkey ldap.key -out ldap.p12 -name Server-Cert
# openssl pkcs12 -export -in ldap.crt -inkey ldap.key -out ldap.p12 -name Server-Cert
Copy to Clipboard Copied! 생성된 PKCS#12 파일을
NSSDB
에 설치합니다.pk12util -i ldap.p12 -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -k /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
# pk12util -i ldap.p12 -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -k /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
Copy to Clipboard Copied! 새 인증서를 성공적으로 가져왔는지 확인합니다.
certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
# certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
Copy to Clipboard Copied!
httpd
서비스를 다시 시작하십시오.systemctl restart httpd.service
# systemctl restart httpd.service
Copy to Clipboard Copied! Directory
서비스를 다시 시작하십시오.systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.service
Copy to Clipboard Copied! -
모든 IdM 복제본에서 이전 단계를 모두 수행합니다. 이는 복제본 간
TLS
연결을 설정하기 위한 사전 요구 사항입니다. LDAP 스토리지에 새 인증서를 등록합니다.
Apache 웹 서버의 이전 개인 키와 인증서를 새 키 및 새로 서명된 인증서로 교체합니다.
ipa-server-certinstall -w --pin=password /var/lib/ipa/private/httpd.key /var/lib/ipa/certs/httpd.crt
# ipa-server-certinstall -w --pin=password /var/lib/ipa/private/httpd.key /var/lib/ipa/certs/httpd.crt
Copy to Clipboard Copied! 위의 명령에서 다음을 수행합니다.
-
w 옵션은
웹 서버에 인증서를 설치 중임을 지정합니다. -
pin
옵션은
개인 키를 보호하는 암호를 지정합니다.
-
-
메시지가 표시되면
Directory Manager
암호를 입력합니다. LDAP 서버의 기존 개인 키와 인증서를 새 키 및 새로 서명한 인증서로 교체합니다.
ipa-server-certinstall -d --pin=password /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ldap.key /path/to/ldap.crt
# ipa-server-certinstall -d --pin=password /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ldap.key /path/to/ldap.crt
Copy to Clipboard Copied! 위의 명령에서 다음을 수행합니다.
-
d 옵션은
LDAP 서버에 인증서를 설치하도록 지정합니다. -
pin
옵션은
개인 키를 보호하는 암호를 지정합니다.
-
-
메시지가 표시되면
Directory Manager
암호를 입력합니다. httpd
서비스를 다시 시작하십시오.systemctl restart httpd.service
# systemctl restart httpd.service
Copy to Clipboard Copied! Directory
서비스를 다시 시작하십시오.systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.service
Copy to Clipboard Copied!
- 영향을 받는 다른 모든 복제본에서 이전 단계의 명령을 실행합니다.