ЕКС: Як налаштувати та прийняти сертифікати через LDAPS на ECS
Summary: Як налаштувати та прийняти сертифікати за допомогою захищеного протоколу легкого доступу до каталогів (LDAPS) на ECS.
Instructions
LDAPS, також відомий як протокол легкого доступу до каталогів (LDAP) через рівень захищених сокетів (SSL) або захищений транспортного рівня (TLS), є формою використання зашифрованого трафіку LDAP для сервера Active Directory (AD) або LDAP.
LDAPS залежить від справного з'єднання LDAP. Перегляньте Посібник з адміністрування ECS та цю статтю знань ECS: Як налаштувати підключення до сервера AD або LDAP в інтерфейсі користувача
Критично важливим компонентом зв'язку SSL або TLS є сертифікати. Переконайтеся, що використані сертифікати не прострочені та не недійсні. Це важливо для того, щоб усі сертифікати в повному ланцюжку сертифікатів були правильними.
Проконсультуйтеся з цього приводу зі своєю мережевою командою.
Щоб завантажити ланцюжок сертифікатів LDAPS і активувати LDAPS, виконайте наведені нижче дії.
1. IP-адреса керування вузлом є обов'язковою для завантаження ланцюжка сертифікатів LDAPS.
2. Користувач root інтерфейсу користувача повинен завантажити ланцюжок сертифікатів LDAPS в інтерфейс CLI для керування вузлами.
3А. Ланцюжок сертифікатів LDAPS у наборі корисних даних XML на IP-адресу
керування вузлом 3B. LDAPS вмикає налаштування параметрів у наборі корисних даних XML на IP-адресу
керування вузлом 4. Використовуйте LDAPS на сторінці постачальника автентифікації ECS із повністю кваліфікованим доменним ім'ям (FQDN) замість IP-адреси.
5. Перевірте логін користувача домену.
Для кроку 3
замість IP-адреси потрібен FQDN,
як:«У сертифікатах SSL сертифікат повинен мати альтернативне ім'я суб'єкта (SAN) у сертифікаті, щоб відповідати з'єднанню, до якого підключається, SAN надається лише з іменем DNS, щоб відповідати конфігурації на ECS».
Тому переконайтеся, що сторінка постачальника автентифікації ECS, діалогове вікно URL сервера, використовує FQDN замість IP-адреси.
Приклад: ldaps://ad-or-ldap-fqdn-domain.com
Перераховані вище кроки:
- IP-адреса керування вузлом є обов'язковою для завантаження ланцюжка сертифікатів LDAPS.
Щоб перевірити параметри ECS щодо параметрів сертифіката LDAPS, спочатку отримайте IP-адресу для керування вузлами.
Якщо є поділ мережі для керування інтерфейсом користувача, "getrackinfo -n" відображає значення "MGMT".
Використовуйте IP-адресу вузлів MGMT. Реплікація та поділ мережі передачі даних не пов'язані з такими етапами:
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
Якщо на VDC немає поділу мережі MGMT, використовуйте замість цього публічну IP-адресу вузла.
У наведеному нижче прикладі MGMT не існує в "getrackinfo -n"; тому використовуйте публічну IP-адресу в getrackinfo як IP-адресу управління для наступних кроків.
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. Користувач root повинен завантажити ланцюжок сертифікатів LDAPS в інтерфейс CLI управління вузлами.
Використовуйте отриману IP-адресу керування, щоб отримати кореневий токен користувача. Потрібен пароль користувача root (або користувача інтерфейсу користувача з правами адміністратора інтерфейсу користувача):
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>
Якщо вихід не "HTTP/1.1 200 OK", перевірте пароль та IP-адресу, які є, якщо існує поділ мережі керування інтерфейсом користувача від команди "getrackinfo -n." .
За допомогою токена користувача root створіть змінну токена.
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Щоб перевірити значення токена, запустіть файл curl Команда для перевірки ємності:
# 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>
3А. Ланцюжок сертифікатів LDAPS у наборі корисних даних XML на IP-адресу
керування вузлом 3B. У LDAPS можна налаштовувати параметри. Прийміть параметр LDAPS у наборі корисних даних XML на IP-адресу керування вузлом.
Вищезазначений використовує токен користувача root для отримання доступу curl до сховища довіри ECS UI, куди можна завантажити сертифікат LDAPS.
Зверніться до посібника з адміністрування ECS для отримання додаткової інформації про «Додати власний сертифікат LDAP».
Отримайте налаштування truststore за допомогою кнопки curl GET команда:
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>
У наведеному вище прикладі сховище довіри "accept_all_certificates" встановлено значення false. Це означає, що жодні сертифікати LDAPS не є надійними.
Об'єкт "accept_all_certificates" термін може бути неоднозначним, але це прапорець, який продовжує використовуватися для ECS для визначення того, чи слід використовувати сертифікати LDAPS.
Користувач може захотіти, щоб цей набір мав значення true або false, залежно від його потреб. Щоб перевірити з'єднання LDPS, встановіть його на true і перевірте логін користувача, щоб перевірити з'єднання LDAPS.
"accept_all_certificates" повертається до false. Отже, якщо ви редагуєте truststore, вам слід встановити параметр "accept_all_certificates" Після цього поверніться до істини.
Створіть xml-файл, щоб змінити параметри сховища довіри за допомогою команди curl із набором корисних даних 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>
Щоб встановити для accept_all_certificates значення false, відредагуйте файл набору корисних даних на false замість true і запустіть команду PUT за допомогою файлу набору корисних даних.
Запустіть команду curl з xml-файлом як корисним навантаженням за допомогою команди 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
Щоб перевірити, що "accept_all_certificates" оновився, виконайте команду 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>
Щоб перевірити налаштування truststore, а не лише його налаштування:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format -
Приклад порожнього сховища довіри сертифіката LDAP:
# 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/>
Може знадобитися декілька сертифікатів, оскільки ECS вимагає всього ланцюжка сертифікатів, кореневого сертифіката, сертифіката ЦС, сертифіката хоста тощо.
Щоб додати сертифікат до сховища довіри, створіть xml-файл сертифіката, який є у користувача. Сертифікат може мати такі типи файлів, як .pem, .crt, .cer тощо.
Щоб завантажити сертифікати в ECS, вони повинні бути у форматі xml, щоб діяти як набір корисних даних xml.
Файл не xml формату сертифіката:
# cat cert.crt -----BEGIN CERTIFICATE----- MIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HhrV5ezjYHY= -----END CERTIFICATE-----
Формат xml для команди додавання curl:
# 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>
Завантажте файл xml набору корисних даних cert:
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
Щоб перевірити, що сертифікат було завантажено, запустіть команду GET, символ кінцевого рядка в сховищі довіри ECS — «.»
# 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>
Щоб перевірити, що налаштування LDAPS не повернулися, запустіть команду 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>
Якщо він повернувся до false, встановіть його назад на true,
оскільки коли відбуваються зміни в сховищі довіри, параметр може встановити значення «false».
Запустіть команду curl з xml-файлом як корисним навантаженням за допомогою команди 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
Щоб перевірити параметри 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. Використовуйте LDAPS на сторінці постачальника автентифікації ECS з FQDN замість IP-адреси.
З ланцюжком сертифікатів LDAPS, завантаженим до ECS truststore, і accept_all_certificates прапорець встановлено як true, перейдіть на сторінку постачальника автентифікації ECS UI та змініть URL-адресу сервера.
< ldap://IP контролера домену або FQDN>
До
ldaps://< контролера домену FQDN>
Тобто: 
FQDN з протоколом
LDAPSЦе має бути FQDN для використання LDPS.
Замість IP-адреси потрібен FQDN, оскільки:
«У сертифікатах SSL сертифікат повинен мати альтернативне ім'я суб'єкта (SAN) у сертифікаті, щоб відповідати з'єднанню, до якого підключаються, SAN надається лише з DNS-іменем, щоб відповідати конфігурації на ECS».
Тому переконайтеся, що сторінка постачальника автентифікації ECS, діалогове вікно URL сервера, використовує FQDN замість IP-адреси.
Тобто:
ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Порти:
Типовим портом для LDAP є 389.
Типовим портом для LDAPS є 636.
Формат URL, якщо порт не є стандартним:
< ldap://IP контролера домену або FQDN>:<порт> або ldaps://< контролер домену FQDN>:<порт>
5. Перевірте логін користувача домену.
Потім перевірте вхід користувача домену під час використання протоколу LDAPS, якщо користувачі домену можуть успішно увійти в систему за допомогою LDAPS.
Отже, з'єднання за протоколом ECS-LDAPS працює.
Інша інформація:
Якщо потрібно:
Щоб видалити сертифікат із сховища довіри, створіть xml-файл, який відповідає сертифікату, який потрібно видалити, але замість
"add" В якості корисного навантаження використовуйте "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>
Щоб використовувати файл набору корисних даних, тобто додати або видалити, використовуйте таку команду:
# 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
Щоб перевірити, чи було корисним навантаження успішним, запустіть команду 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/>
Якщо ви не впевнені, що сервер LDAPS не відповідає наданому сертифікату, запустіть наведену нижче команду, щоб перевірити очікувану відповідь від сервера LDAPS на запит відповідного сертифіката.
"verify error:num=21:unable to verify the first certificate".
У цьому прикладі сервер LDAPS є самопідписаним, а не стороннім сертифікатом, тому він може генерувати додаткове попередження про те, що він має самопідпис:
# 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
Перевірте файл сертифіката, який підключається до сервера LDAPS, і якщо є відповідний сертифікат, який потрібно використовувати, а саме Перевірити код повернення: 0 (добре):
# 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)
---
Щоб перевірити це, використовуйте таку команду:
# 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.
Якщо ви не використовуєте вищезазначені команди XML (зверніть увагу, перевага віддається 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}
Щоб створити JSON-файл і змінити параметри сховища довіри за допомогою команди curl із набором корисних даних JSON:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Модуль json.tool на python може перевіряти формат файлу JSON. Якщо є помилка, що файл може не бути JSON-файлом. У цьому прикладі помилок немає, і виводить файл, тому це форматований JSON-файл:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Запустіть команду curl із файлом JSON як корисним навантаженням із командою 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
XML-набір корисних даних PUT використовує --data-binary у команді curl, тоді як JSON-набір корисних даних PUT використовує
-d У команді curl:
--data-binary
(ЕЛЕКТРОННИЙ ДОСТУП) При цьому дані публікуються точно так, як вказано, без додаткової обробки:--data-ascii aka -d
(ЕЛЕКТРОННИЙ ДОСТУП) Це псевдонім для -d, --data.
Щоб перевірити, що він оновився, виконайте команду 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}
Перевірте логін користувача домену в інтерфейсі ECS UI, коли сертифікати LDAPS тепер дозволені.
Щоб перевірити довірчий магазин:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore
Приклад порожнього сховища довіри сертифіката LDAP:
# 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":[]}
Формат JSON для команди додавання curl, однорядкового файлу з символами нового рядка, заміненими на \n та \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-----"]}
Дивіться Посібник з адміністрування ECS "Додати власний сертифікат LDAP". За допомогою цієї команди можна додати або видалити:
# 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
Щоб перевірити завантаження:
# 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-----"]}
Щоб перевірити, що налаштування LDAPS не повернулися, запустіть команду 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}
Якщо він повернувся до false, встановіть його назад на true. Коли в сховищі довіри відбуваються зміни, для параметра може бути встановлено значення «false».
Запустіть команду curl із файлом JSON як корисним навантаженням із командою 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
Щоб перевірити параметри 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}
Щоб видалити сертифікат із сховища довіри, створіть файл JSON, який відповідає сертифікату, який потрібно видалити, але замість «add» як корисного навантаження використовуйте "remove":
# cat cert.json
{"remove":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Щоб додати або видалити, використовуйте таку команду:
# 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
Щоб перевірити завантаження:
# 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":[]}