ECS. Настройка и принятие сертификатов по протоколу LDAPS в ECS
Summary: Настройка и принятие сертификатов по защищенному протоколу LDAPS (Lightweight Directory Access Protocol) в ECS.
Instructions
LDAPS, также известный как протокол Lightweight Directory Access Protocol (LDAP) over Secure Socket Layer (SSL) или Transport Layer Security (TLS), представляет собой зашифрованную форму трафика для использования LDAP сервером Active Directory (AD) или LDAP.
LDAPS зависит от рабочего подключения LDAP. См. Руководство по администрированию ECS и данную статью базы знаний ECS. Как настроить подключение к серверу AD или LDAP в пользовательском интерфейсе
Критически важным компонентом связи по протоколу SSL или TLS являются сертификаты. Убедитесь, что срок действия используемых сертификатов не истек и они не являются недействительными. Это важно, чтобы все сертификаты в полной цепочке были правильными.
По этому вопросу необходимо обратиться в вашу сетевую команду.
Чтобы загрузить цепочку сертификатов LDAPS и включить LDAPS, выполните следующие действия.
1. IP-адрес управления узлом является обязательным для загрузки цепочки сертификатов LDAPS.
2. Пользователь root пользовательского интерфейса должен загрузить цепочку сертификатов LDAPS в интерфейс командной строки управления узлом.
3А. Цепочка сертификатов LDAPS в полезных XML-данных с IP-адресом
управления узла 3B. Настройка параметра разрешения LDAPS в полезных данных XML для IP-адреса
управления узлом 4. Используйте LDAPS на странице поставщика проверки подлинности ECS с полным доменным именем (FQDN) вместо IP-адреса.
5. Проверьте логин пользователя домена.
Для шага 3
вместо IP-адреса требуется полное доменное имя, например:
«В случае сертификатов SSL сертификат должен иметь в сертификате альтернативное имя субъекта (SAN), чтобы соответствовать подключаемому подключению, SAN предоставляется только имя DNS, чтобы соответствовать конфигурации на ECS».
Поэтому убедитесь, что на странице поставщика проверки подлинности ECS и в диалоговом окне URL-адреса сервера вместо IP-адреса указано полное доменное имя.
Пример: ldaps://ad-or-ldap-fqdn-domain.com
Описанные выше шаги:
- IP-адрес управления узлом является обязательным для загрузки цепочки сертификатов LDAPS.
Чтобы проверить настройки ECS в отношении параметров сертификата LDAPS, сначала получите IP-адрес управления узлом для использования.
Если для управления пользовательским интерфейсом существует разделение сети, команда «getrackinfo -n» отображает значения «MGMT».
Используйте IP-адрес управления узлами. Репликация и разделение сети данных не связаны со следующими шагами:
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
Если на виртуальном ЦОД нет разделения сетевых управлений, используйте вместо него общедоступный 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. Для загрузки цепочки сертификатов LDAPS в интерфейс командной строки управления узлом требуется пользователь root пользовательского интерфейса.
Используйте полученный IP-адрес управления, чтобы получить токен пользователя root. Требуется пароль пользователя 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, куда можно загрузить сертификат LDAPS.
Дополнительные сведения по разделу «Добавление пользовательского сертификата LDAP» см. в руководстве администратора ECS.
Получите параметры хранилища доверенных сертификатов с помощью метода 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.
Пользователь может захотеть, чтобы этот параметр имел значение «истина» или «ложь», в зависимости от его потребностей. Чтобы протестировать подключение LDAPS, установите для него значение true и проверьте имя входа пользователя в систему, чтобы проверить подключение LDAPS.
"accept_all_certificates" возвращается к false. Таким образом, при редактировании хранилища доверенных сертификатов необходимо задать свойство "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>
Чтобы проверить хранилище доверенных сертификатов, а не только его настройку, выполните следующие действия.
# 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 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>
Отправьте полезные данные сертификата в формате 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
Чтобы проверить, загружен ли сертификат, выполните команду 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 с полным доменным именем вместо IP-адреса.
После загрузки цепочки сертификатов LDAPS в хранилище доверенных сертификатов ECS и accept_all_certificates установите значение true, перейдите на страницу поставщика аутентификации пользовательского интерфейса ECS и измените URL-адрес сервера с.
< ldap://IP-адрес или полное доменное имя>контроллера доменаTo
ldaps://< полностью определенное доменное имя>
контроллера домена, то есть:
FQDN с протоколом
LDAPSДля использования LDAPS это должно быть полностью определенное доменное имя.
Полное доменное имя требуется вместо IP-адреса, например:
«В случае с сертификатами SSL в сертификате должно быть указано альтернативное имя субъекта (SAN), чтобы оно соответствовало подключению, к которому выполняется подключение, в SAN отображается только имя DNS, соответствующее конфигурации на ECS».
Поэтому убедитесь, что страница поставщика проверки подлинности ECS, диалоговое окно URL-адреса сервера, использует полностью определенное доменное имя вместо IP-адреса.
То есть:
ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Порты:
По умолчанию для LDAP установлен порт 389.
По умолчанию для LDAPS используется порт 636.
Формат URL-адреса, если порт не по умолчанию:
< ldap://IP-адрес или полное доменное имя>:<порт> контроллера домена или ldaps://< полное доменное имя>:<порт>
контроллера домена 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 (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)
---
Чтобы проверить это, используйте следующую команду:
# 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
(HTTP) При этом публикуются данные в точном соответствии с указанными данными без дополнительной обработки:--data-ascii aka -d
(HTTP) Это псевдоним для -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 с разрешенными сертификатами 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 add, однострочный файл с символами новой строки, замененными на \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, соответствующий удаляемому сертификату, но вместо добавления в качестве полезных данных используйте "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":[]}