21장. 전체 IdM 배포에서 만료된 경우 웹 서버 및 LDAP 서버 인증서 교체
IdM(Identity Management)은 다음 서비스 인증서를 사용합니다.
-
LDAP(또는 디렉터리
) 서버 인증서 -
웹(또는
httpd) 서버 인증서 - PKINIT 인증서
통합 인증 기관(CA)이 없는 IdM 배포에서 certmonger 서비스는 기본적으로 IdM 서비스 인증서를 추적하거나 만료 경고를 제공하지 않습니다. IdM 시스템 관리자가 인증서 추적을 수동으로 구성하거나 알림을 설정하지 않으면 사전 통지 없이 인증서가 만료될 수 있습니다.
다음 절차에 따라 server.idm.example.com IdM 서버에서 실행 중인 httpd 및 LDAP 서비스에 대해 만료된 인증서를 유효한 인증서 체인으로 교체하십시오.
httpd 및 LDAP 서비스 인증서에는 다른 IdM 서버의 키 쌍과 제목 이름이 다릅니다. 따라서 각 IdM 서버에서 인증서를 개별적으로 갱신해야 합니다.
사전 요구 사항
-
토폴로지의 모든 IdM 복제본에
httpd및 LDAP 인증서가 만료되었습니다. 그렇지 않은 경우 IdM 복제본에서 아직 만료되지 않은 경우 웹 서버 및 LDAP 서버 인증서 교체를 참조하십시오. -
IdM 서버 및 복제본에 대한
루트액세스 권한이 있습니다. -
Directory Manager암호를 알고 있습니다. 다음 디렉터리 및 파일의 백업을 생성했습니다.
-
/etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -
/etc/httpd/alias -
/var/lib/certmonger -
/var/lib/ipa/certs/
-
-
새
httpd/LDAP 인증서가 이전 CA와 다른 외부 CA에서 서명하거나 이미 설치된 CA 인증서 인증서가 더 이상 유효하지 않은 경우 외부 CA의 CA 인증서 체인을 저장하는 파일에 액세스할 수 있습니다.
프로세스
-
선택 사항:
/var/lib/ipa/private및 /var/lib/ipa/passwds의백업을 수행합니다. 새 인증서에 서명하기 위해 동일한 CA(인증 기관)를 사용하지 않거나 이미 설치된 CA 인증서가 더 이상 유효하지 않은 경우 외부 CA의 유효한 CA 인증서 체인이 포함된 파일로 로컬 데이터베이스의 외부 CA에 대한 정보를 업데이트합니다. 파일은 PEM 및 DER 인증서, PKCS#7 인증서 체인, PKCS#8 및 원시 개인 키 및 PKCS#12 형식으로 허용됩니다.
CA 인증서를 설치합니다.
ipa-cacert-manage install /path/to/ca.crt
# ipa-cacert-manage install /path/to/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요새 외부 CA 인증서의 주체가 이전 키와 동일하지만 다른 키를 사용하는 경우 다음 조건을 충족한 경우에만 사용할 수 있습니다.
- 두 인증서에는 동일한 신뢰 플래그가 있습니다.
- CA는 동일한 닉네임을 공유합니다.
-
인증서에 나열된 X509 확장에는 AKI(
Authority Key Identifier) 확장이 포함됩니다.
나머지 인증서 체인을 IdM에 추가 CA 인증서로 설치합니다.
ipa-cacert-manage install명령은 파일에서 첫 번째 인증서만 읽기 때문에 한 번에 하나의 전체 CA 체인을 설치해야 합니다. 예를 들어 체인에 두 개의 인증서가 포함된 경우 각각 인증서를 별도의 파일에 저장하고 각 파일에 대해ipa-cacert-manage install을 개별적으로 실행합니다.ipa-cacert-manage install /path/to/intermediate-ca.crt
# ipa-cacert-manage install /path/to/intermediate-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa-cacert-manage install /path/to/root-ca.crt
# ipa-cacert-manage install /path/to/root-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서 체인의 인증서로 로컬 IdM 인증서 데이터베이스를 업데이트합니다.
ipa-certupdate
# ipa-certupdateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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! Toggle word wrap Toggle overflow 새 키를 생성하려면 다음을 수행합니다.
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! Toggle word wrap Toggle overflow
OpenSSL유틸리티를 사용하여 IdM 인스턴스에서 타사 CA로 실행되는 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! Toggle word wrap Toggle overflow -
CSR, /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! Toggle word wrap Toggle overflow 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,uCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 인증서 닉네임은 Server-Cert 이지만 다른 이름을 적용할 수 있습니다.
이전 단계의 인증서 닉네임을 사용하여 NSS 데이터베이스(
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.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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-CertCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 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.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 인증서를 가져왔는지 확인합니다.
certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
# certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
httpd서비스를 다시 시작합니다.systemctl restart httpd.service
# systemctl restart httpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Directory서비스를 다시 시작하십시오.systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
모든 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.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령에서 다음을 수행합니다.
-
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.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령에서 다음을 수행합니다.
-
d옵션은 LDAP 서버에 인증서를 설치하도록 지정합니다. -
--pin옵션은 개인 키를 보호하는 암호를 지정합니다.
-
-
메시지가 표시되면
Directory Manager암호를 입력합니다. httpd서비스를 다시 시작합니다.systemctl restart httpd.service
# systemctl restart httpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Directory서비스를 다시 시작하십시오.systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 영향을 받는 다른 모든 복제본에서 이전 단계의 명령을 실행합니다.