ECS: Anleitung zum Einrichten und Akzeptieren von Zertifikaten über LDAPS auf ECS
Summary: Anleitung zum Einrichten und Akzeptieren von Zertifikaten über Lightweight Directory Access Protocol Secure (LDAPS) auf ECS.
Instructions
LDAPS, auch bekannt als Lightweight Directory Access Protocol (LDAP) über Secure Socket Layer (SSL) oder Transport Layer Security (TLS), ist eine verschlüsselte Form der LDAP-Nutzung für einen Active Directory (AD)- oder LDAP-Server.
LDAPS hängt von einer funktionierenden LDAP-Verbindung ab. Lesen Sie den ECS-Administrationsleitfaden und diesen Wissensdatenbank-Artikel ECS: So richten Sie eine AD- oder LDAP-Serververbindung über die Benutzeroberfläche
einEine kritische Komponente bei der SSL- bzw. TLS-Kommunikation sind die Zertifikate. Stellen Sie sicher, dass die verwendeten Zertifikate nicht abgelaufen und ungültig sind. Dies ist wichtig, damit alle Zertifikate in der gesamten Zertifikatskette korrekt sind.
Wenden Sie sich diesbezüglich an Ihr Netzwerkteam.
Beachten Sie die folgenden Schritte, um die LDAPS-Zertifikatkette hochzuladen und LDAPS zu aktivieren.
1. Eine Node-Management-IP-Adresse ist ein Muss, um die LDAPS-Zertifikatkette hochzuladen.
2. Der UI-Root-Nutzer muss die LDAPS-Zertifikatkette in die Node-Management-CLI-Schnittstelle hochladen.
3A. Das LDAPS-Zertifikat wird in einer XML-Payload an die Node-Management-IP-Adresse
3B weitergeleitet. Die LDAPS-Freigabeparametereinstellung in einer XML-Payload an die Node-Management-IP-Adresse
4. Verwenden Sie LDAPS auf der Seite des ECS-Authentifizierungsanbieters mit einem vollständig qualifizierten Domainnamen (FQDN) anstelle einer IP-Adresse.
5. Testen Sie die Domainnutzeranmeldung.
Für Schritt 3
wird anstelle einer IP-Adresse ein FQDN benötigt, denn:
"Bei SSL-Zertifikaten muss das Zertifikat über einen alternativen Betreffnamen (Subject Alternate Name, SAN) verfügen, der mit der Verbindung übereinstimmt. Dem SAN wird nur ein DNS-Name angezeigt, der der Konfiguration auf dem ECS entspricht."
Vergewissern Sie sich daher, dass auf der Seite des ECS-Authentifizierungsanbieters im Dialogfeld Server-URL ein FQDN anstelle einer IP-Adresse verwendet wird.
Beispiel: ldaps://ad-or-ldap-fqdn-domain.com
Die oben genannten Schritte:
- Eine Node-Management-IP-Adresse ist ein Muss, um die LDAPS-Zertifikatkette hochzuladen.
Um die ECS-Einstellungen in Bezug auf die LDAPS-Zertifikateinstellungen zu prüfen, ermitteln Sie zunächst eine Node-Management-IP.
Wenn für das UI-Management eine Netzwerktrennung vorhanden ist, zeigt "getrackinfo -n" "MGMT"-Werte an.
Verwenden Sie die MGMT-IP-Adresse des Nodes. Die Trennung von Replikation und Datennetzwerk steht nicht im Zusammenhang mit den folgenden Schritten:
admin@node1:~> getrackinfo -n Named networks ============== Node ID Network Ip Address Netmask Gateway VLAN Interface 1 repl 10.xxx.xxx.11 255.255.254.0 xxx.xxx.xxx.xxx 14 public 1 mgmt 10.xxx.xxx.21 255.255.254.0 xxx.xxx.xxx.xxx 13 public 1 data 10.xxx.xxx.31 255.255.254.0 xxx.xxx.xxx.xxx 15 public 2 repl 10.xxx.xxx.12 255.255.254.0 xxx.xxx.xxx.xxx 14 public 2 mgmt 10.xxx.xxx.22 255.255.254.0 xxx.xxx.xxx.xxx 13 public 2 data 10.xxx.xxx.32 255.255.254.0 xxx.xxx.xxx.xxx 15 public 3 repl 10.xxx.xxx.13 255.255.254.0 xxx.xxx.xxx.xxx 14 public 3 mgmt 10.xxx.xxx.23 255.255.254.0 xxx.xxx.xxx.xxx 13 public 3 data 10.xxx.xxx.33 255.255.254.0 xxx.xxx.xxx.xxx 15 public 4 repl 10.xxx.xxx.14 255.255.254.0 xxx.xxx.xxx.xxx 14 public 4 mgmt 10.xxx.xxx.24 255.255.254.0 xxx.xxx.xxx.xxx 13 public 4 data 10.xxx.xxx.34 255.255.254.0 xxx.xxx.xxx.xxx 15 public
Wenn es keine Netzwerkmanagement-Trennung auf dem VDC gibt, verwenden Sie stattdessen die öffentliche IP-Adresse des Node.
Im folgenden Beispiel existiert kein MGMT in "getrackinfo -n"; Verwenden Sie daher die öffentliche IP-Adresse in getrackinfo als Management-IP-Adresse für die nächsten Schritte.
admin@node1:~> getrackinfo -n Named networks ============== Node ID Network Ip Address Netmask Gateway VLAN Interface admin@node1:~> admin@node1:~> getrackinfo Node private Node Public BMC Ip Address Id Status Mac Ip Address Mac Ip Address Node Name =============== ====== ====== ================= ================= ================= ================= ========= 192.1XX.2XX.1 1 MA a4:bf:xx:xx:xx:74 10.xx.xx.1 a4:bf:xx:xx:xx 192.1XX.2XX.101 provo-red 192.1XX.2XX.2 2 SA a4:bf:xx:xx:xx:c8 10.xx.xx.2 a4:bf:xx:xx:xx 192.1XX.2XX.102 sandy-red 192.1XX.2XX.3 3 SA a4:bf:xx:xx:xx:e0 10.xx.xx.3 a4:bf:xx:xx:xx 192.1XX.2XX.103 orem-red 192.1XX.2XX.4 4 SA a4:bf:xx:xx:xx:56 10.xx.xx.4 a4:bf:xx:xx:xx 192.168.219.104 ogden-red
2. Der Root-Nutzer der Benutzeroberfläche ist erforderlich, um die LDAPS-Zertifikatkette in die Node-Management-CLI-Schnittstelle hochzuladen.
Verwenden Sie die erworbene Management-IP-Adresse, um das Root-Nutzertoken abzurufen. Das Kennwort für den Root-Nutzer ist erforderlich (oder ein UI-Nutzer mit UI-Administratorrechten):
curl -s -k -v -u <user> https://<NodeManagementIP>:4443/login 2>&1
# curl -s -k -v -u root https://10.xxx.xxx.21:4443/login 2>&1 Enter host password for user 'root': ...... < HTTP/1.1 200 OK < Date: Thu, 14 Jan 2021 13:51:24 GMT < Content-Type: application/xml < Content-Length: 93 < Connection: keep-alive < X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8= < X-SDS-AUTH-USERNAME: root < X-SDS-AUTH-MAX-AGE: 28800 < * Connection #0 to host 10.xxx.xxx.21 left intact <?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn><user>root</user></loggedIn>
Wenn die Ausgabe nicht "HTTP/1.1 200 OK" ist, überprüfen Sie das Kennwort und die IP-Adresse, d. h., wenn eine Trennung des UI-Managementnetzwerks vom Befehl "getrackinfo -n." besteht.
Erstellen Sie mit dem Root-Nutzertoken eine Tokenvariable.
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Um den Tokenwert zu testen, führen Sie einen curl Befehl zum Überprüfen der Kapazität:
# curl -k -X GET -H "$TOKEN" https://10.xxx.xxx.21:4443/object/capacity | xmllint --format - % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 176 100 176 0 0 249 0 --:--:-- --:--:-- --:--:-- 250 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cluster_capacity> <totalFree_gb>100657</totalFree_gb> <totalProvisioned_gb>447005</totalProvisioned_gb> </cluster_capacity>
3A. Das LDAPS-Zertifikat wird in einer XML-Payload an die Node-Management-IP-Adresse
3B weitergeleitet. Die Einstellung der LDAPS-Aktivierungsparameter. Akzeptieren Sie den LDAPS-Parameter in einer XML-Payload an die Node-Management-IP-Adresse.
Im obigen Beispiel wird das Root-Nutzertoken verwendet, um Curl-Zugriff auf den Truststore der ECS-Benutzeroberfläche zu erhalten, in den das LDAPS-Zertifikat hochgeladen werden kann.
Weitere Informationen zum Hinzufügen eines nutzerdefinierten LDAP-Zertifikats finden Sie im ECS-Administratorhandbuch.
Rufen Sie die Truststore-Einstellungen mit einem curl GET Befehl durchgeführt:
curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore/settings | xmllint --format -
curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore/settings | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings> <accept_all_certificates>false</accept_all_certificates> </truststore_settings>
Im obigen Beispiel ist der Truststore "accept_all_certificates" auf false festgelegt ist. Das bedeutet, dass keine LDAPS-Zertifikate vertrauenswürdig sind.
Das "accept_all_certificates" Der Begriff kann mehrdeutig sein, aber es ist ein Flag, das weiterhin für ECS verwendet wird, um zu bestimmen, ob LDAPS-Zertifikate verwendet werden sollen.
Ein Benutzer möchte dies je nach Bedarf auf true oder false setzen. Um die LDAPS-Verbindung zu testen, kann die LDAPS-Verbindung validiert werden, indem Sie sie auf true festlegen und die Nutzeranmeldung testen.
"accept_all_certificates" kehrt zu "false" zurück. Wenn Sie also den Truststore bearbeiten, müssen Sie die "accept_all_certificates" danach wieder zu True zurückgekehrt.
Erstellen Sie eine XML-Datei, um die Truststore-Einstellungen mithilfe eines curl-Befehls mit einer XML-Payload zu ändern:
# sudo vi truststoresettings.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings_changes> <accept_all_certificates>true</accept_all_certificates> </truststore_settings_changes> # cat truststoresettings.xml | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings_changes> <accept_all_certificates>true</accept_all_certificates> </truststore_settings_changes>
Um accept_all_certificates auf false festzulegen, bearbeiten Sie die Payload-Datei in "false" statt "true" und führen Sie den Befehl PUT mithilfe der Payload-Datei aus.
Führen Sie einen curl-Befehl mit einer xml-Datei als Payload mit einem curl put-Befehl aus:
# curl -s -k -X PUT -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore/settings --data-binary @truststoresettings.xml
Um zu überprüfen, ob "accept_all_certificates" aktualisiert wurde, führen Sie den Befehl curl GET aus:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore/settings | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings_changes> <accept_all_certificates>true</accept_all_certificates> </truststore_settings_changes>
So untersuchen Sie den Truststore, nicht nur die Truststore-Einstellung:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format -
Beispiel für einen leeren LDAP-Zertifikat-Truststore:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <trusted_certificates/>
Möglicherweise sind mehrere Zertifikate erforderlich, da ECS die gesamte Zertifikatkette, das Stammzertifikat, das CA-Zertifikat, das Hostzertifikat usw. benötigt.
Um ein Zertifikat zum Truststore hinzuzufügen, erstellen Sie eine XML-Datei des Zertifikats des Nutzers. Ein Zertifikat kann die Dateitypen .pem, .crt, .cer usw. sein.
Um die Zertifikate in ECS hochzuladen, sollten sie im XML-Format vorliegen, damit sie als XML-Payload fungieren.
Datei des Zertifikats im Nicht-XML-Format:
# cat cert.crt -----BEGIN CERTIFICATE----- MIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HhrV5ezjYHY= -----END CERTIFICATE-----
Das XML-Format für einen curl add-Befehl:
# cat cert.xml | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <trusted_certificate_changes> <add> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgITMQAAAATxxxxxxxxxxxxxxxxxxxxxxxxxhkiG9w0BAQsF ADBbMRIwEAYKCZImiZPyLGQBGRYxxxxxxxxxxxxxxxxxxxxxxxxxFgR2aXRjMRMw ....................... pkHgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxhlGh2TaTC xqz4T/sO4ggWs0Yz5nBmCZMDn6nxxxxxxrjX+ahXI= -----END CERTIFICATE-----</certificate> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqhkiG9w0BAQsF ADBbMRIwEAYKCZImiZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZFgR2aXRjMRMw EQYKCZImiZPyLGQBGRxxxxxxxxxxxxxxxxxxxxxxxxxxRW50ZXJwcmlzZS1DQTAe Fw0yMDA2MDgwNzQwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIiMA0GCSqGSIb3DQEB .......................... 8wYIKWr2AqSKKxcBHxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3ykeRMZJk7VpQDQDLN feFI4rHZ4JOqDWttiHxxxxxxxxxxxxxxxxxxxxxxxxxxxhpXsxyjQIRvrtaCZVXz GR7Na7Ah1o+9MWenMExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGQlsQ47nZE2YgV -----END CERTIFICATE-----</certificate> </add> </trusted_certificate_changes>
Laden Sie das XML-Format der Zertifikatnutzlast hoch:
curl -i -s -k -X PUT -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore --data-binary @cert.xml
Um zu überprüfen, ob das Zertifikat hochgeladen wurde, führen Sie den Befehl GET aus. Das Endzeilenzeichen im ECS-Truststore ist " ."
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <trusted_certificates> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgITMQAAAATxxxxxxxxxxxxxxxxxxxxxxxxxhkiG9w0BAQsF ADBbMRIwEAYKCZImiZPyLGQBGRYxxxxxxxxxxxxxxxxxxxxxxxxxFgR2aXRjMRMw ....................... pkHgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxhlGh2TaTC xqz4T/sO4ggWs0Yz5nBmCZMDn6nxxxxxxrjX+ahXI= -----END CERTIFICATE-----</certificate> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqhkiG9w0BAQsF ADBbMRIwEAYKCZImiZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZFgR2aXRjMRMw EQYKCZImiZPyLGQBGRxxxxxxxxxxxxxxxxxxxxxxxxxxRW50ZXJwcmlzZS1DQTAe Fw0yMDA2MDgwNzQwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIiMA0GCSqGSIb3DQEB .......................... 8wYIKWr2AqSKKxcBHxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3ykeRMZJk7VpQDQDLN feFI4rHZ4JOqDWttiHxxxxxxxxxxxxxxxxxxxxxxxxxxxhpXsxyjQIRvrtaCZVXz GR7Na7Ah1o+9MWenMExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGQlsQ47nZE2YgV -----END CERTIFICATE-----</certificate> </trusted_certificates>
Um zu überprüfen, ob die LDAPS-Einstellungen nicht zurückgesetzt wurden, führen Sie den Befehl curl GET aus:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore/settings | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings> <accept_all_certificates>false</accept_all_certificates> </truststore_settings>
Wenn er auf false zurückgesetzt wurde, setzen Sie ihn wieder auf true,
denn bei einer Änderung des Truststores kann sich die Einstellung selbst auf "false" setzen.
Führen Sie einen curl-Befehl mit einer xml-Datei als Payload mit einem curl put-Befehl aus:
# curl -s -k -X PUT -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore/settings --data-binary @truststoresettings.xml
So überprüfen Sie die LDAPS-Einstellungen:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore/settings | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <truststore_settings> <accept_all_certificates>true</accept_all_certificates> </truststore_settings>
4. Verwenden Sie LDAPS auf der Seite des ECS-Authentifizierungsanbieters mit FQDN anstelle einer IP-Adresse.
Nachdem die LDAPS-Zertifikatkette in den ECS-Truststore hochgeladen wurde und die accept_all_certificates Wenn das Flag auf "true" gesetzt ist, navigieren Sie zur Seite "ECS UI authentication provider" und ändern Sie die Server-URL von.
< ldap://IP-Adresse oder FQDN>des Domänencontrollersan
ldaps://< FQDN>
des Domänencontrollers, d. h.:
FQDN mit dem LDAPS-Protokoll
Es muss sich um einen FQDN für die LDAPS-Nutzung handeln.
Ein FQDN wird anstelle einer IP-Adresse benötigt, denn:
"Bei SSL-Zertifikaten muss das Zertifikat einen alternativen Betreffnamen (Subject Alternate Name, SAN) im Zertifikat haben, der für die Verbindung mit der Verbindung übereinstimmt. Dem SAN wird nur ein DNS-Name angezeigt, der der Konfiguration auf dem ECS entspricht."
Vergewissern Sie sich daher, dass auf der Seite "ECS authentication provider" im Dialogfeld "Server-URL" ein FQDN anstelle einer IP-Adresse verwendet wird.
Das heißt:
ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Häfen:
Der Standardport für LDAP ist 389.
Der Standardport für LDAPS ist 636.
URL-Format, wenn nicht standardmäßiger Port:
< ldap://IP-Adresse oder FQDN> des Domänencontrollers:< Port> oder FQDN> des ldaps://< Domänencontrollers:< Port>
5. Testen Sie die Domainnutzeranmeldung.
Testen Sie dann die Domainnutzeranmeldung, während das LDAPS-Protokoll die Domainnutzer erfolgreich über LDAPS anmelden können.
Daher funktioniert die ECS-LDAPS-Protokollverbindung.
Ergänzende Angaben:
Bei Bedarf:
Um ein Zertifikat aus dem Truststore zu entfernen, erstellen Sie eine XML-Datei, die dem zu entfernenden Zertifikat entspricht, aber nicht
"add" als Payload verwenden Sie "remove"aus:
# cat cert_remove.xml | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <trusted_certificate_changes> <remove> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgITMQAAAATxxxxxxxxxxxxxxxxxxxxxxxxxhkiG9w0BAQsF ADBbMRIwEAYKCZImiZPyLGQBGRYxxxxxxxxxxxxxxxxxxxxxxxxxFgR2aXRjMRMw ....................... pkHgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxhlGh2TaTC xqz4T/sO4ggWs0Yz5nBmCZMDn6nxxxxxxrjX+ahXI= -----END CERTIFICATE-----</certificate> <certificate>-----BEGIN CERTIFICATE----- MIIG2TCCBMGgAwIBAgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqhkiG9w0BAQsF ADBbMRIwEAYKCZImiZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZFgR2aXRjMRMw EQYKCZImiZPyLGQBGRxxxxxxxxxxxxxxxxxxxxxxxxxxRW50ZXJwcmlzZS1DQTAe Fw0yMDA2MDgwNzQwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIiMA0GCSqGSIb3DQEB .......................... 8wYIKWr2AqSKKxcBHxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3ykeRMZJk7VpQDQDLN feFI4rHZ4JOqDWttiHxxxxxxxxxxxxxxxxxxxxxxxxxxxhpXsxyjQIRvrtaCZVXz GR7Na7Ah1o+9MWenMExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGQlsQ47nZE2YgV -----END CERTIFICATE-----</certificate> </remove> </trusted_certificate_changes>
Verwenden Sie diesen Befehl, um die Payload-Datei zu verwenden, d. h. hinzufügen oder entfernen:
# curl -s -k -X PUT -H Content-Type:application/xml-H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore --data-binary @cert_remove.xml
Um zu überprüfen, ob die Payload erfolgreich war, führen Sie den GET-Befehl aus:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://10.xxx.xxx.21:4443/vdc/truststore | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <trusted_certificates/>
Wenn Sie sich nicht sicher sind, ob der LDAPS-Server nicht mit dem bereitgestellten Zertifikat übereinstimmt, führen Sie den folgenden Befehl aus, um die erwartete Antwort der LDAPS-Serveranforderung nach einem übereinstimmenden Zertifikat zu überprüfen.
"verify error:num=21:unable to verify the first certificate".
In diesem Beispiel ist der LDAPS-Server ein selbstsigniertes Zertifikat und kein Drittanbieterzertifikat, sodass er möglicherweise eine zusätzliche Warnung erzeugt, dass er selbstsigniert ist:
# sudo openssl s_client -connect LDAPS_server_IP:636 < /dev/null
CONNECTED(00000003)
depth=0 CN =
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN =
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
........
---
Server certificate
-----BEGIN CERTIFICATE-----
.......
A cert that it expects.
.......
-----END CERTIFICATE-----
No client certificate CA names sent
Client Certificate Types: RSA sign, DSA sign, ECDSA sign
Requested Signature Algorithms: RSA+SHA512:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA512:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1
Peer signing digest: SHA1
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2223 bytes and written 487 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA384
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
.......................
SRP username: None
Start Time: 1610452553
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
DONE
Überprüfen Sie die Zertifikatdatei, die eine Verbindung zum LDAPS-Server herstellt, und ob ein übereinstimmendes Zertifikat vorhanden ist, das verwendet werden soll, d. h. Rückgabecode überprüfen: 0 (ok):
# openssl s_client -connect LDAPS_server_IP:636 -CAfile /home/admin/cert_file_to_be_used.crt
CONNECTED(00000003)
.......
---
Server certificate
-----BEGIN CERTIFICATE-----
.....
.....
-----END CERTIFICATE-----
.......
---
No client certificate CA names sent
Client Certificate Types: RSA sign, DSA sign, ECDSA sign
Requested Signature Algorithms: RSA+SHA512:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA512:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1
Peer signing digest: SHA1
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2223 bytes and written 487 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA384
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
.........
Verify return code: 0 (ok)
---
Um dies zu überprüfen, verwenden Sie diesen Befehl:
# cat /home/admin/cert.crt | openssl x509 -dates -noout notBefore=Jan 12 13:43:52 2021 GMT notAfter=Jan 12 13:43:52 2022 GMT
JSON-Version des Befehlsbeispiels.
Wenn Sie die oben genannten XML-Befehle nicht verwenden (beachten Sie, dass XML bevorzugt wird):
curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":false}
So erstellen Sie eine JSON-Datei, um die Truststore-Einstellungen mit einem curl-Befehl mit einer JSON-Payload zu ändern:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Das json.tool-Modul auf Python kann ein JSON-Dateiformat validieren. Wenn ein Fehler auftritt, ist die Datei möglicherweise keine JSON-Datei. In diesem Beispiel gibt es keine Fehler und gibt die Datei aus, sodass es sich um eine formatierte JSON-Datei handelt:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Führen Sie einen curl-Befehl mit einer JSON-Datei als Payload mit einem curl put-Befehl aus:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings -d @truststoresettings.json
XML-Payload-PUT verwendet --data-binary im curl-Befehl, während JSON-Payload-PUT verwendet
-d Gehen Sie im curl-Befehl wie folgt vor:
--data-binary
(HTTP) Dadurch werden Daten genau wie angegeben ohne zusätzliche Verarbeitung ausgegeben:--data-ascii aka -d
(HTTP) Dies ist ein Alias für -d, --dataaus.
Um zu überprüfen, ob sie aktualisiert wurde, führen Sie den Befehl curl GET aus:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":true}
Testen Sie die Anmeldung des Domainnutzers auf der ECS-Benutzeroberfläche, wobei die LDAPS-Zertifikate jetzt zulässig sind.
So untersuchen Sie den Truststore:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore
Beispiel für einen leeren Truststore eines LDAP-Zertifikats:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.xxx.21:4443/vdc/truststore
{"certificate":[]}
Das JSON-Format für einen curl add-Befehl, eine einzeilige Datei mit Zeilenumbruchzeichen, die durch \n und \r\n ersetzt werden:
{"add":["-----BEGIN CERTIFICATE-----\nxxxxx\r\n---END CERTIFICATE-----"]}
# cat cert.json
{"add":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Weitere Informationen finden Sie im ECS-Administrationshandbuch unter "Hinzufügen eines nutzerdefinierten LDAP-Zertifikats". Verwenden Sie diesen Befehl, um Folgendes hinzuzufügen oder zu entfernen:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore -d @cert.json
So überprüfen Sie den Upload:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.xxx.21:4443/vdc/truststore
{"certificate":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Um zu überprüfen, ob die LDAPS-Einstellungen nicht zurückgesetzt wurden, führen Sie den Befehl curl GET aus:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":false}
Wenn er auf "false" zurückgesetzt wurde, setzen Sie ihn wieder auf "true". Wenn eine Änderung am Truststore erfolgt, wird die Einstellung möglicherweise auf "false" gesetzt.
Führen Sie einen curl-Befehl mit einer JSON-Datei als Payload mit einem curl put-Befehl aus:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings -d @truststoresettings.json
So überprüfen Sie die LDAPS-Einstellungen:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":true}
Um ein Zertifikat aus dem Truststore zu entfernen, erstellen Sie eine JSON-Datei, die dem zu entfernenden Zertifikat entspricht, aber verwenden Sie anstelle von "add" als Nutzlast "remove"aus:
# cat cert.json
{"remove":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Verwenden Sie zum Hinzufügen oder Entfernen diesen Befehl:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore -d @cert.json
So überprüfen Sie den Upload:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.xxx.21:4443/vdc/truststore
{"certificate":[]}