ECS : Configuration et acceptation des certificats sur LDAPS sur ECS
Summary: Comment configurer et accepter des certificats sur LDAPS (Lightweight Directory Access Protocol Secure) sur ECS.
Instructions
LDAPS, également connu sous le nom de protocole LDAP (Lightweight Directory Access Protocol) sur SSL (Secure Socket Layer) ou TLS (Transport Layer Security), est une forme de trafic chiffrée d’utilisation de LDAP pour un serveur Active Directory (AD) ou LDAP.
LDAPS dépend d’une connexion LDAP fonctionnelle. Consultez le Guide d’administration d’ECS et cet article de la base de connaissances ECS : Configuration d’une connexion au serveur AD ou LDAP dans l’interface utilisateur
Les certificats constituent un composant essentiel de la communication SSL ou TLS. Assurez-vous que les certificats utilisés ne sont ni valides ni expirés. Cela est important pour que tous les certificats de la chaîne de certificats complète soient corrects.
Renseignez-vous auprès de votre équipe réseau à ce sujet.
Pour télécharger la chaîne de certificats LDAPS et activer LDAPS, suivez les étapes suivantes.
1. Une adresse IP de gestion de nœud est indispensable pour télécharger la chaîne de certificats LDAPS.
2. L’utilisateur root de l’interface utilisateur doit télécharger la chaîne de certificats LDAPS vers l’interface CLI de gestion des nœuds.
3A. Chaîne de certificats LDAPS d’une charge utile XML vers l’adresse
IP de gestion du nœud 3B. La définition du paramètre LDAPS d’activation dans une charge utile XML à l’adresse
IP de gestion du nœud 4. Utilisez LDAPS sur la page du fournisseur d’authentification ECS, avec un nom de domaine complet (FQDN) au lieu d’une adresse IP.
5. Testez la connexion utilisateur du domaine.
Pour l’étape 3,
un FQDN est nécessaire à la place d’une adresse IP, car :
« Avec les certificats SSL, le certificat doit avoir un autre nom d’objet (SAN) dans le certificat pour correspondre à la connexion à laquelle il est connecté. Seul le SAN se voit présenter un nom DNS correspondant à la configuration d’ECS. »
Par conséquent, vérifiez que la page du fournisseur d’authentification ECS, boîte de dialogue URL du serveur, utilise un FQDN au lieu d’une adresse IP.
Exemple: ldaps://ad-or-ldap-fqdn-domain.com
Les étapes ci-dessus :
- Une adresse IP de gestion de nœud est indispensable pour télécharger la chaîne de certificats LDAPS.
Pour examiner les paramètres ECS concernant les paramètres de certificat LDAPS, commencez par obtenir une adresse IP de gestion des nœuds à utiliser.
S’il existe une séparation réseau pour la gestion de l’interface utilisateur, « getrackinfo -n » affiche les valeurs « MGMT ».
Utilisez l’adresse IP MGMT des nœuds. La réplication et la séparation du réseau de données ne sont pas liées à ces étapes :
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
S’il n’existe aucune séparation de MGMT réseau sur le VDC, utilisez plutôt l’adresse IP publique du nœud.
Dans l’exemple suivant, aucune MGMT n’existe dans "getrackinfo -n"; par conséquent, utilisez l’adresse IP publique dans getrackinfo comme adresse IP de gestion pour les étapes suivantes.
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. L’utilisateur root de l’interface utilisateur est requis pour télécharger la chaîne de certificats LDAPS vers l’interface CLI de gestion des nœuds.
Utilisez l’adresse IP de gestion acquise pour obtenir le jeton d’utilisateur root. Le mot de passe de l’utilisateur root est requis (ou un utilisateur de l’interface utilisateur disposant de privilèges d’administration d’interface) :
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>
Si le résultat n’est pas « HTTP/1.1 200 OK », vérifiez le mot de passe et l’adresse IP, c’est-à-dire s’il existe une séparation du réseau de gestion de l’interface utilisateur à partir de la commande « getrackinfo -n ».
Avec le jeton de l’utilisateur root, créez une variable de jeton.
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Pour tester la valeur du jeton, exécutez une commande curl Commande de vérification de la capacité :
# 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. Chaîne de certificats LDAPS d’une charge utile XML vers l’adresse
IP de gestion du nœud 3B. Paramètre d’activation LDAPS. Acceptez le paramètre LDAPS dans une charge utile XML sur l’adresse IP de gestion du nœud.
La procédure ci-dessus utilise le jeton de l’utilisateur root pour obtenir un accès curl au magasin de confiance de l’interface utilisateur ECS où le certificat LDAPS peut être téléchargé.
Consultez le guide d’administration d’ECS pour plus d’informations sur l’ajout d’un certificat LDAP personnalisé.
Obtenez les paramètres du truststore avec un curl GET WMIC suivante :
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>
Dans l’exemple ci-dessus, le truststore "accept_all_certificates" est défini sur false. Cela signifie qu’aucun certificat LDAPS n’est approuvé.
Le "accept_all_certificates" Le terme peut être ambigu, mais il s’agit d’une balise qui continue d’être utilisée par ECS pour déterminer si les certificats LDAPS doivent être utilisés.
Un utilisateur peut souhaiter que ce paramètre soit défini sur true ou false, en fonction de ses besoins. Pour tester la connexion LDAPS, la définir sur true et tester la connexion de l’utilisateur peut valider la connexion LDAPS.
"accept_all_certificates" redevient faux. Par conséquent, si vous modifiez le truststore, vous devez définir l’attribut "accept_all_certificates" revenir à la vérité par la suite.
Créez un fichier xml pour modifier les paramètres du truststore à l’aide d’une commande curl avec une charge utile xml :
# 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>
Pour définir accept_all_certificates sur false, modifiez le fichier de charge utile sur false au lieu de true, puis exécutez la commande PUT à l’aide du fichier de charge utile.
Exécutez une commande curl avec un fichier xml comme charge utile avec une commande curl PUT :
# 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
Pour vérifier que « accept_all_certificates » est mis à jour, exécutez la commande curl GET :
# 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>
Pour examiner le magasin de confiance, pas seulement le paramètre du magasin de confiance :
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format -
Exemple de magasin d’approbations de certificats LDAP vide :
# 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/>
Plusieurs certificats peuvent être nécessaires, car ECS requiert l’ensemble de la chaîne de certificats, le certificat racine, le certificat de l’autorité de certification, le certificat de l’hôte, etc.
Pour ajouter un certificat au truststore, créez un fichier XML du certificat dont dispose l’utilisateur. Un certificat peut être de type fichier .pem, .crt, .cer, etc.
Pour télécharger les certificats vers ECS, ils doivent être au format xml afin d’agir comme une charge utile XML.
Fichier au format autre que xml du certificat :
# cat cert.crt -----BEGIN CERTIFICATE----- MIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HhrV5ezjYHY= -----END CERTIFICATE-----
Format xml d’une commande curl add :
# 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>
Téléchargez le fichier XML de la charge utile de certificat au format :
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
Pour vérifier que le certificat a été chargé, exécutez la commande GET. Le caractère de fin de ligne dans le magasin d’approbations ECS est « . »
# 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>
Pour vérifier que les paramètres LDAPS n’ont pas été rétablis, exécutez la commande curl GET :
# 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>
S’il est revenu à false, redéfinissez-le sur true,
car lorsqu’une modification est apportée au magasin de confiance, le paramètre peut se définir sur « false ».
Exécutez une commande curl avec un fichier xml comme charge utile avec une commande curl PUT :
# 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
Pour vérifier les paramètres LDAPS :
# 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. Utilisez LDAPS sur la page du fournisseur d’authentification ECS, avec un FQDN au lieu d’une adresse IP.
Une fois la chaîne de certificats LDAPS téléchargée dans le magasin d’approbations ECS et le accept_all_certificates Définissez la balise sur true, accédez à la page du fournisseur d’authentification de l’interface utilisateur ECS et modifiez l’URL du serveur à partir de.
< ldap://Adresse IP ou FQDN>
du contrôleur de domaine vers
ldaps://< FQDN>
du contrôleur de domaine À savoir :
FQDN avec le protocole
LDAPS Il doit s’agir d’un FQDN pour l’utilisation de LDAPS.
Un FQDN est nécessaire à la place d’une adresse IP, car :
« Avec les certificats SSL, le certificat doit avoir un autre nom d’objet (SAN) dans le certificat pour correspondre à la connexion à laquelle il est connecté. Seul le SAN se voit présenter un nom DNS correspondant à la configuration d’ECS. »
Par conséquent, vérifiez que la page du fournisseur d’authentification ECS, boîte de dialogue URL du serveur, utilise un FQDN au lieu d’une adresse IP.
C’est-à-dire :
ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Ports:
Le port par défaut pour LDAP est 389.
Le port par défaut pour LDAPS est 636.
Format de l’URL s’il n’est pas le port par défaut :
< ldap://Adresse IP du contrôleur de domaine ou FQDN> :<port> ou ldaps://< FQDN> :<port>du contrôleur de domaine5.
Testez la connexion utilisateur du domaine.
Ensuite, testez la connexion de l’utilisateur de domaine avec le protocole LDAPS si les utilisateurs du domaine peuvent se connecter avec succès par LDAPS.
Par conséquent, la connexion au protocole ECS-LDAPS fonctionne.
Autres informations :
Si nécessaire :
Pour supprimer un certificat du truststore, créez un fichier xml correspondant au certificat à supprimer, mais au lieu de
"add" comme charge utile, utilisez "remove":
# 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>
Pour utiliser le fichier de charge utile, c’est-à-dire ajouter ou supprimer, utilisez cette commande :
# 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
Pour vérifier si la charge utile a réussi, exécutez la commande GET :
# 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/>
Si vous n’êtes pas sûr que le serveur LDAPS ne correspond pas au certificat fourni, exécutez la commande suivante pour vérifier la réponse attendue de la demande du serveur LDAPS pour un certificat correspondant.
"verify error:num=21:unable to verify the first certificate".
Dans cet exemple, le serveur LDAPS est un certificat auto-signé, plutôt qu’un certificat tiers. Par conséquent, il peut générer un avertissement supplémentaire indiquant qu’il est auto-signé :
# 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
Vérifiez le fichier de certificat qui se connecte au serveur LDAPS et s’il existe un certificat correspondant à utiliser, c’est-à-dire Vérifiez le code de retour : 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)
---
Pour le vérifier, utilisez cette commande :
# 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
Version JSON de l’exemple de commandes.
Si vous n’utilisez pas les commandes XML ci-dessus (notez qu’il est préférable d’utiliser XML) :
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}
Pour créer un fichier JSON afin de modifier les paramètres du magasin de confiance à l’aide d’une commande curl avec une charge utile JSON :
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Le module json.tool sur python peut valider un format de fichier JSON. En cas d’erreur, il se peut que le fichier ne soit pas un fichier JSON. Dans cet exemple, il n’y a pas d’erreurs et le fichier est généré de sorte qu’il s’agit d’un fichier JSON formaté :
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Exécutez une commande curl avec un fichier JSON comme charge utile avec une commande curl PUT :
# 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
La charge utile XML PUT utilise --data-binary dans la commande curl, tandis que la charge utile JSON PUT utilise
-d Dans la commande curl :
--data-binary
(HTTP) Les données sont alors affichées exactement comme indiqué, sans traitement supplémentaire :--data-ascii aka -d
(HTTP) Il s’agit d’un alias pour -d, --data.
Pour vérifier qu’il est mis à jour, exécutez la commande curl GET :
# 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}
Testez la connexion de l’utilisateur de domaine sur l’interface utilisateur ECS avec les certificats LDAPS désormais autorisés.
Pour examiner le magasin d’approbations :
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore
Exemple d’un magasin d’approbations de certificats LDAP vide :
# 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":[]}
Le format JSON d’une commande curl add, un fichier d’une seule ligne avec les caractères de nouvelle ligne remplacés par \n et \r\n :
{"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-----"]}
Reportez-vous au Guide d’administration d’ECS « Ajouter un certificat LDAP personnalisé ». Utilisez cette commande pour ajouter ou supprimer :
# 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
Pour vérifier le téléchargement :
# 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-----"]}
Pour vérifier que les paramètres LDAPS n’ont pas été rétablis, exécutez la commande curl GET :
# 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}
Si la valeur false est rétablie, redéfinissez-la sur true. Lorsqu’une modification est apportée au magasin de confiance, le paramètre peut se définir sur « false ».
Exécutez une commande curl avec un fichier JSON comme charge utile avec une commande curl PUT :
# 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
Pour vérifier les paramètres LDAPS :
# 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}
Pour supprimer un certificat du magasin d’approbations, créez un fichier JSON correspondant au certificat à supprimer, mais utilisez plutôt que « add » en tant que charge utile "remove":
# cat cert.json
{"remove":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Pour ajouter ou supprimer, utilisez cette commande :
# 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
Pour vérifier le téléchargement :
# 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":[]}