7.5. 속성 암호화에 사용되는 TLS 인증서 업데이트
속성 암호화는 서버의 TLS 인증서를 기반으로 합니다. 다음 절차에 따라 TLS 인증서를 갱신하거나 교체한 후 해당 속성 암호화가 실패하지 않도록 합니다.
사전 요구 사항
- 속성 암호화를 구성하셨습니다.
- TLS 인증서는 가까운 시일 내에 만료됩니다.
절차
userRoot
데이터베이스를 내보냅니다.dsconf -D "cn=Directory Manager" ldap://server.example.com backend export -E userRoot
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend export -E userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버는
/var/lib/dirsrv/slapd-instance_name/ldif/
디렉터리에 LDIF 파일에 내보내기를 저장합니다. e 옵션은 내보내기 중 이미 암호화된 속성을 해독합니다.개인 키 및 CSR(인증서 서명 요청)을 생성합니다. 외부 유틸리티를 사용하여 생성하려면 이 단계를 건너뜁니다.
하나의 이름으로만 호스트에 연결할 수 있는 경우 다음을 입력합니다.
dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"
# dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에 여러 이름으로 액세스할 수 있는 경우:
dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.net
# dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.net
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트 이름을 마지막 매개변수로 지정하면 명령에서
DNS:server.example.com, DNS:server.example.net
항목을 CSR에 사용하여 SAN(Subject Alternative Name) 확장을 추가합니다.
subject매개변수에 지정된 문자열은
RFC 1485에 따라 유효한 제목 이름이어야 합니다. 주체의CN
필드가 필요하므로 서버의 FQDN(정규화된 도메인 이름) 중 하나로 설정해야 합니다. 이 명령은/etc/dirsrv/slapd-instance_name/Server-Cert.csr
파일에 CSR을 저장합니다.- CSR을 CA(인증 기관)에 제출하여 발급된 인증서를 가져옵니다. 자세한 내용은 CA 문서를 참조하십시오.
CA에서 발행한 서버 인증서를 NSS 데이터베이스로 가져옵니다.
dsctl tls generate-server-cert-csr
명령을 사용하여 개인 키를 생성한 경우 다음을 입력합니다.dsconf -D "cn=Directory Manager" ldap://server.example.com security certificate add --file /root/instance_name.crt --name "server-cert" --primary-cert
# dsconf -D "cn=Directory Manager" ldap://server.example.com security certificate add --file /root/instance_name.crt --name "server-cert" --primary-cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --name _certificate_nickname매개변수에 설정한 인증서의 이름을
기록하십시오. 이후 단계에서 필요합니다.외부 유틸리티를 사용하여 개인 키를 생성한 경우 서버 인증서와 개인 키를 가져옵니다.
dsctl instance_name tls import-server-key-cert /root/server.crt /root/server.key
# dsctl instance_name tls import-server-key-cert /root/server.crt /root/server.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령을 사용하려면 먼저 서버 인증서의 경로를 지정한 다음 개인 키 경로를 지정해야 합니다. 이 방법은 항상 인증서의 닉네임을
Server-Cert
로 설정합니다.
CA 인증서를 NSS 데이터베이스로 가져옵니다.
dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate add --file /root/ca.crt --name "Example CA"
# dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate add --file /root/ca.crt --name "Example CA"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CA 인증서의 신뢰 플래그를 설정합니다.
dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate set-trust-flags "Example CA" --flags "CT,,"
# dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate set-trust-flags "Example CA" --flags "CT,,"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 TLS 암호화 및 인증서 기반 인증에 사용할 CA를 신뢰하도록 Directory Server가 구성됩니다.
인스턴스를 중지합니다.
dsctl instance_name stop
# dsctl instance_name stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/dirsrv/slapd-instance_name/dse.ldif
파일을 편집하고 속성을 포함하여 다음 항목을 제거합니다.-
CN=AES,cn=encrypted 특성 키,cn=database_name,cn=ldbm 데이터베이스,cn=plugins,cn=config
-
CN=3DES,cn=encrypted 특성 키,cn=database_name,cn=ldbm 데이터베이스,cn=plugins,cn=config
중요모든 데이터베이스의 항목을 제거합니다.
nsSymmetricKey
속성이 포함된 항목이 '/etc/dirsrv/slapd-instance_name/dse.ldif 파일에 남아 있으면 Directory Server가 시작되지 않습니다.-
LDIF 파일을 가져옵니다.
dsctl instance_name ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif
# dsctl instance_name ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --encrypted
매개변수를 사용하면 스크립트를 사용하여 가져오기 중 암호화에 구성된 속성을 암호화할 수 있습니다.인스턴스를 시작합니다.
dsctl instance_name start
# dsctl instance_name start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow