ECS: Cómo configurar y aceptar certificados a través de LDAPS en ECS
Summary: Cómo configurar y aceptar certificados a través del protocolo ligero de acceso a directorios seguro (LDAPS) en ECS.
Instructions
LDAPS, también conocido como protocolo ligero de acceso a directorios (LDAP) mediante capa de conexión segura (SSL) o seguridad de capa de transporte (TLS), es una forma de tráfico cifrado de uso de LDAP para un servidor de Active Directory (AD) o LDAP.
LDAPS depende de una conexión LDAP en funcionamiento. Revise la Guía de administración de ECS y este artículo de la base de conocimientos ECS: Cómo configurar una conexión de servidor AD o LDAP en la UI
deUn componente crítico con comunicación SSL o TLS son los certificados. Asegúrese de que los certificados utilizados no estén vencidos ni sean válidos. Esto es importante para que todos los certificados de la cadena de certificados completa sean correctos.
Consulte con su equipo de red al respecto.
Para cargar la cadena de certificados LDAPS y habilitar LDAPS, tenga en cuenta los siguientes pasos.
1. Una dirección IP de administración de nodos es imprescindible para cargar la cadena de certificados LDAPS.
2. El usuario raíz de la interfaz de usuario debe cargar la cadena de certificados LDAPS en la interfaz de la CLI de administración de nodos.
3A. La cadena de certificados LDAPS en una carga útil XML a la dirección
IP de administración de nodos 3B. La configuración del parámetro de habilitación de LDAPS en una carga útil XML a la dirección
IP de administración de nodos 4. Utilice LDAPS en la página del proveedor de autenticación de ECS, con un nombre de dominio calificado (FQDN) en lugar de una dirección IP.
5. Pruebe el inicio de sesión del usuario del dominio.
Para el paso 3,
se necesita un FQDN en lugar de una dirección IP, ya que:
"Con los certificados SSL, el certificado debe tener un nombre alternativo del sujeto (SAN) en el certificado que coincida con la conexión a la que se está conectando, la SAN se presenta solo con un nombre DNS para que coincida con la configuración en ECS".
Por lo tanto, confirme que la página del proveedor de autenticación de ECS y el cuadro de diálogo URL del servidor utilicen un FQDN en lugar de una dirección IP.
Ejemplo: ldaps://ad-or-ldap-fqdn-domain.com
Los pasos anteriores:
- Una dirección IP de administración de nodos es imprescindible para cargar la cadena de certificados LDAPS.
Para examinar la configuración de ECS con respecto a la configuración del certificado LDAPS, primero obtenga una IP de administración de nodos para utilizar.
Si hay una separación de red para la administración de la interfaz del usuario, "getrackinfo -n" muestra los valores "MGMT".
Utilice la dirección IP de MGMT de los nodos. La replicación y la separación de la red de datos no están relacionadas con estos pasos:
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
Si no hay una separación de administración de red en el VDC, utilice la dirección IP pública del nodo en su lugar.
En el siguiente ejemplo, no existe ningún MGMT en "getrackinfo -n"; por lo tanto, utilice la dirección IP pública en getrackinfo como la dirección IP de administración para los próximos pasos.
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. Se requiere un usuario raíz de la interfaz de usuario para cargar la cadena de certificados LDAPS en la interfaz de la CLI de administración de nodos.
Utilice la dirección IP de administración adquirida para obtener el token de usuario raíz. Se requiere una contraseña de usuario raíz (o un usuario de la interfaz de usuario con privilegios de administrador de la interfaz de usuario):
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 el resultado no es "HTTP/1.1 200 OK", compruebe la contraseña y la dirección IP, es decir, si existe separación de la red de administración de la interfaz de usuario mediante el comando "getrackinfo -n.".
Con el token de usuario raíz, cree una variable de token.
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Para probar el valor del token, ejecute un curl Comando para comprobar la capacidad:
# 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. La cadena de certificados LDAPS en una carga útil XML a la dirección
IP de administración de nodos 3B. La configuración del parámetro de habilitación de LDAPS. Acepte el parámetro LDAPS en una carga útil XML en la dirección IP de administración del nodo.
Lo anterior utiliza el token de usuario raíz para obtener acceso curl al almacén de confianza de la interfaz del usuario de ECS, donde se puede cargar el certificado LDAPS.
Consulte la guía de administración de ECS para obtener más información sobre "Add custom LDAP certificate".
Obtener la configuración de TrustStore con un curl GET el comando:
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>
En el ejemplo anterior, el truststore "accept_all_certificates" está configurado en false. Esto significa que ningún certificado LDAPS es de confianza.
El "accept_all_certificates" El término puede ser ambiguo, pero es una marca que se sigue utilizando para que ECS determine si se deben utilizar certificados LDAPS.
Es posible que un usuario desee que esta configuración se configure en verdadero o falso, según sus necesidades. Para probar la conexión LDAPS, configurarla en verdadero y probar el inicio de sesión del usuario puede validar la conexión LDAPS.
"accept_all_certificates" Vuelve a False. Por lo tanto, si edita el truststore, debe establecer el "accept_all_certificates" De vuelta a la verdad después.
Cree un archivo xml para cambiar la configuración del almacén de confianza mediante un comando curl con una carga útil 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>
Para configurar accept_all_certificates en false, edite el archivo de carga a falso en lugar de verdadero y ejecute el comando PUT mediante el archivo de carga.
Ejecute un comando curl con un archivo xml como carga útil con un comando 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
Para comprobar que "accept_all_certificates" esté actualizado, ejecute el comando 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>
Para examinar el valor de TrustStore, no solo la configuración de TrustStore:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format -
Un ejemplo de un truststore de certificados LDAP vacío:
# 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/>
Es posible que se necesiten varios certificados, ya que ECS requiere toda la cadena de certificados, el certificado raíz, el certificado de CA, el certificado de host, etc.
Para agregar un certificado al truststore, cree un archivo xml con el certificado que tiene el usuario. Un certificado puede ser de tipos de archivo .pem, .crt, .cer, etc.
Para cargar los certificados en ECS, deben estar en formato xml a fin de que actúen como una carga útil xml.
Archivo en formato no xml del certificado:
# cat cert.crt -----BEGIN CERTIFICATE----- MIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HhrV5ezjYHY= -----END CERTIFICATE-----
El formato xml para un comando 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>
Cargue la carga útil del certificado en formato xml:
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
Para comprobar que el certificado se cargó, ejecute el comando GET. El carácter de la línea final en el almacén de confianza de ECS es "".
# 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>
Para comprobar que los ajustes de LDAPS no se hayan revertido, ejecute el comando 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>
Si se revirtió a false, vuelva a establecerlo en verdadero.
Como cuando hay un cambio en el almacén de confianza, la configuración puede establecerse en "false".
Ejecute un comando curl con un archivo xml como carga útil con un comando 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
Para comprobar la configuración de 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. Utilice LDAPS en la página del proveedor de autenticación de ECS, con FQDN en lugar de una dirección IP.
Con la cadena de certificados LDAPS cargada en el truststore de ECS y el accept_all_certificates establecida en true, vaya a la página del proveedor de autenticación de la interfaz del usuario de ECS y cambie la URL del servidor.
< ldap://IP o FQDN>de la controladoradedominio a ldaps://< FQDN>
de la controladora
de dominio, es decir: 
FQDN con el protocolo
LDAPSDebe ser un FQDN para el uso de LDAPS.
Se necesita un FQDN en lugar de una dirección IP como:
"Con los certificados SSL, el certificado debe tener un nombre alternativo del sujeto (SAN) en el certificado que coincida con la conexión a la que se está conectando, la SAN se presenta solo con un nombre DNS para que coincida con la configuración en ECS".
Por lo tanto, confirme que la página del proveedor de autenticación de ECS y el cuadro de diálogo URL del servidor utilicen un FQDN en lugar de una dirección IP.
Es decir ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Puertos:
El puerto predeterminado para LDAP es 389.
El puerto predeterminado para LDAPS es 636.
Formato de URL si es un puerto no predeterminado:
< ldap://IP o FQDN> de la controladora de dominio:< puerto> o ldaps://< FQDN> de la controladora de dominio:< puerto>
5. Pruebe el inicio de sesión del usuario del dominio.
A continuación, pruebe el inicio de sesión del usuario del dominio con el protocolo LDAPS para ver si los usuarios del dominio pueden iniciar sesión correctamente mediante LDAPS.
Por lo tanto, la conexión del protocolo ECS-LDAPS está funcionando.
Información adicional:
Si es necesario:
Para eliminar un certificado del truststore, cree un archivo xml que coincida con el certificado que desea eliminar, pero en lugar de
"add" Como carga útil, utilice "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>
Para utilizar el archivo de carga útil, es decir, agregar o eliminar, utilice este comando:
# 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
Para comprobar si la carga útil se realizó correctamente, ejecute el comando 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 no está seguro de que el servidor LDAPS no coincida con el certificado proporcionado, ejecute el siguiente comando para comprobar la respuesta esperada de la solicitud del servidor LDAPS de un certificado coincidente.
"verify error:num=21:unable to verify the first certificate".
En este ejemplo, el servidor LDAPS es un certificado autofirmado, en lugar de un certificado de terceros, por lo que puede generar una advertencia adicional de que está autofirmado:
# 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
Compruebe el archivo de certificado que se conecta al servidor LDAPS y si hay un certificado coincidente para utilizar, es decir, Verifique el código de retorno: 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)
---
Para comprobarlo, utilice este comando:
# 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
Versión JSON del ejemplo de comandos.
Si no utiliza los comandos XML anteriores (tenga en cuenta que se recomienda 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}
Para crear un archivo JSON para cambiar la configuración del truststore mediante un comando curl con una carga útil JSON:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
El módulo json.tool en python puede validar un formato de archivo JSON. Si se produce un error, es posible que el archivo no sea un archivo JSON. En este ejemplo, no hay errores y genera el archivo, por lo que es un archivo JSON con formato:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Ejecute un comando curl con un archivo JSON como carga útil mediante un comando 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
PUT de carga útil XML utiliza --data-binary en el comando curl, mientras que PUT de carga útil JSON utiliza
-d En el comando curl:
--data-binary
(HTTP) Esto publica los datos exactamente como se especifica sin procesamiento adicional:--data-ascii aka -d
(HTTP) Este es un alias para -d, --data.
Para comprobar que esté actualizado, ejecute el comando 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}
Pruebe el inicio de sesión del usuario del dominio en la interfaz del usuario de ECS con los certificados LDAPS que ahora se permiten.
Para examinar el truststore:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore
Ejemplo de un truststore de certificados LDAP vacío:
# 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":[]}
El formato JSON para un comando curl add, un archivo de una sola línea con caracteres de nueva línea reemplazados por \n y \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-----"]}
Consulte la Guía de administración de ECS "Add custom LDAP certificate". Utilice este comando para agregar o quitar:
# 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
Para comprobar la carga:
# 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-----"]}
Para comprobar que los ajustes de LDAPS no se hayan revertido, ejecute el comando 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 se revirtió a false, vuelva a establecerlo en verdadero. Cuando hay un cambio en el almacén de confianza, la configuración puede establecerse en "false".
Ejecute un comando curl con un archivo JSON como carga útil mediante un comando 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
Para comprobar la configuración de 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}
Para eliminar un certificado del almacén de confianza, cree un archivo JSON que coincida con el certificado que desea eliminar, pero en lugar de "agregar" como carga útil, utilice "remove":
# cat cert.json
{"remove":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Para agregar o quitar, utilice este comando:
# 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
Para comprobar la carga:
# 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":[]}