ECS: Jak skonfigurować i zaakceptować certyfikaty za pośrednictwem LDAPS w ECS
Summary: Konfigurowanie i akceptowanie certyfikatów za pośrednictwem protokołu LDAPS (Lightweight Directory Access Protocol Secure) w ECS.
Instructions
LDAPS, znany także jako Lightweight Directory Access Protocol (LDAP) over Secure Socket Layer (SSL) lub Transport Layer Security (TLS), to szyfrowana forma ruchu LDAP używana przez serwer Active Directory (AD) lub LDAP.
Protokół LDAPS zależy od działającego połączenia LDAP. Zapoznaj się z podręcznikiem administracji ECS i tym artykułem bazy wiedzy ECS: Konfigurowanie połączenia z serwerem AD lub LDAP w interfejsie użytkownika
Krytycznym komponentem komunikacji SSL lub TLS są certyfikaty. Upewnij się, że użyte certyfikaty nie wygasły i nie są nieprawidłowe. Jest to ważne, aby wszystkie certyfikaty w całym łańcuchu certyfikatów były poprawne.
Skontaktuj się w tej sprawie z zespołem ds. sieci.
Aby przesłać łańcuch certyfikatów LDAPS i włączyć LDAPS, wykonaj następujące czynności.
1. Adres IP zarządzania węzłem jest niezbędny do przesłania łańcucha certyfikatów LDAPS.
2. Użytkownik root interfejsu użytkownika musi przesłać łańcuch certyfikatów LDAPS do interfejsu wiersza poleceń zarządzania węzłami.
3A. Łańcuch certyfikatów LDAPS w ładunku XML wysyłanym na adres
IP zarządzania węzłem 3B. Ustawienie parametru LDAPS enable w ładunku XML na adres
IP zarządzania węzłem 4. Użyj LDAPS na stronie dostawcy uwierzytelniania ECS, wpisując w pełni kwalifikowaną nazwę domeny (FQDN) zamiast adresu IP.
5. Przetestuj login użytkownika domeny.
W przypadku kroku 3
zamiast adresu IP wymagana jest nazwa FQDN, ponieważ:
"W przypadku certyfikatów SSL certyfikat musi mieć alternatywną nazwę podmiotu (SAN) w certyfikacie, aby pasował do połączenia, sieć SAN jest prezentowana tylko z nazwą DNS zgodną z konfiguracją w ECS".
W związku z tym upewnij się, że strona dostawcy uwierzytelniania ECS, w oknie dialogowym adresu URL serwera używa nazwy FQDN zamiast adresu IP.
Przykład: ldaps://ad-or-ldap-fqdn-domain.com
Powyższe kroki:
- Adres IP zarządzania węzłem jest niezbędny do przesłania łańcucha certyfikatów LDAPS.
Aby sprawdzić ustawienia ECS dotyczące ustawień certyfikatu LDAPS, najpierw uzyskaj adres IP zarządzania węzłami do użycia.
Jeśli istnieje separacja sieci dla zarządzania interfejsem użytkownika, "getrackinfo -n" wyświetla wartości "MGMT".
Użyj adresu IP zarządzania węzłami. Replikacja i separacja sieci danych nie są związane z tymi krokami:
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
Jeśli w centrum VDC nie ma separacji zarządzania siecią, użyj publicznego adresu IP węzła.
W poniższym przykładzie nie istnieje MGMT w "getrackinfo -n"; w związku z tym użyj publicznego adresu IP w getrackinfo jako adres IP do zarządzania dla kolejnych kroków.
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. Użytkownik root interfejsu użytkownika jest wymagany do przesłania łańcucha certyfikatów LDAPS do interfejsu wiersza polecenia zarządzania węzłami.
Użyj uzyskanego adresu IP zarządzania, aby uzyskać token użytkownika głównego. Wymagane jest hasło użytkownika root (lub użytkownika interfejsu użytkownika z uprawnieniami administratora interfejsu użytkownika):
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>
Jeśli wynik jest inny niż "HTTP/1.1 200 OK", sprawdź hasło i adres IP, czyli czy istnieje separacja sieci zarządzania interfejsem użytkownika z polecenia
"getrackinfo -n.".Za pomocą tokenu użytkownika głównego utwórz zmienną tokenu.
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Aby przetestować wartość tokenu, uruchom polecenie curl Polecenie sprawdzenia pojemności:
# 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. Łańcuch certyfikatów LDAPS w ładunku XML wysyłanym na adres
IP zarządzania węzłem 3B. Ustawienie parametru LDAPS enable Zaakceptuj parametr LDAPS w ładunku XML na adres IP zarządzania węzłem.
Powyższe polecenie używa tokenu użytkownika głównego w celu uzyskania dostępu curl do magazynu zaufanych certyfikatów interfejsu użytkownika ECS, do którego można przesłać certyfikat LDAPS.
Więcej informacji na temat dodawania niestandardowego certyfikatu LDAP można znaleźć w podręczniku administratora ECS.
Pobierz ustawienia truststore za pomocą 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>
W powyższym przykładzie truststore "accept_all_certificates" jest ustawiona na wartość false. Oznacza to, że żadne certyfikaty LDAPS nie są zaufane.
Ten "accept_all_certificates" Termin może być niejednoznaczny, ale jest to flaga, która nadal jest używana przez ECS do określania, czy mają być używane certyfikaty LDAPS.
Użytkownik może chcieć, aby to ustawienie było prawdziwe lub fałszywe, w zależności od potrzeb. Aby przetestować połączenie LDAPS przez ustawienie wartości true i przetestowanie loginu użytkownika, można zweryfikować połączenie LDAPS
"accept_all_certificates" zmienia się z powrotem w fałsz. Tak więc, jeśli edytujesz zaufany magazyn, musisz ustawić "accept_all_certificates" Wróć do prawdy później.
Utwórz plik xml, aby zmienić ustawienia magazynu zaufania za pomocą polecenia curl z ładunkiem 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>
Aby ustawić wartość accept_all_certificates na false, zmodyfikuj plik ładunku na false zamiast true, a następnie uruchom polecenie PUT przy użyciu pliku ładunku.
Uruchom polecenie curl z plikiem xml jako ładunkiem za pomocą polecenia 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
Aby sprawdzić, czy "accept_all_certificates" jest zaktualizowany, uruchom polecenie 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>
Aby sprawdzić zaufany magazyn, a nie tylko ustawienie truststore:
# curl -s -k -X GET -H Content-Type:application/xml -H "$TOKEN" -H ACCEPT:application/xml https://<NodeManagementIP>:4443/vdc/truststore | xmllint --format -
Przykład pustego magazynu zaufanych certyfikatów 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/>
Może być potrzebnych wiele certyfikatów, ponieważ ECS wymaga całego łańcucha certyfikatów, certyfikatu głównego, certyfikatu CA, certyfikatu hosta itd.
Aby dodać certyfikat do magazynu zaufanych certyfikatów, utwórz plik xml certyfikatu posiadanego przez użytkownika. Certyfikat może być typem pliku .pem, .crt, .cer itd.
Aby przesłać certyfikaty do ECS, powinny one być w formacie xml, aby działały jako ładunek xml.
Plik certyfikatu w formacie innym niż xml:
# cat cert.crt -----BEGIN CERTIFICATE----- MIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HhrV5ezjYHY= -----END CERTIFICATE-----
Format xml polecenia 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>
Prześlij format xml ładunku certyfikatu:
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
Aby sprawdzić, czy certyfikat został przesłany, uruchom polecenie GET. Znak wiersza końcowego w magazynie zaufanych certyfikatów ECS to " ."
# 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>
Aby sprawdzić, czy ustawienia LDAPS nie zostały przywrócone, uruchom polecenie 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>
Jeśli powrócił do wartości false, ustaw ją z powrotem na true,
tak jak w przypadku zmiany w zaufanym magazynie, ustawienie może ustawić się na "false".
Uruchom polecenie curl z plikiem xml jako ładunkiem za pomocą polecenia 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
Aby sprawdzić ustawienia 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. Użyj LDAPS na stronie dostawcy uwierzytelniania ECS z nazwą FQDN zamiast adresu IP.
Z łańcuchem certyfikatów LDAPS przesłanym do magazynu zaufanych certyfikatów ECS i accept_all_certificates ustawiona na true, przejdź do strony dostawcy uwierzytelniania interfejsu użytkownika ECS i zmień adres URL serwera z.
< ldap://Adres IP lub nazwa FQDN>kontrolera domenyNa
ldaps://< nazwa FQDN>
kontrolera domeny Czyli:
nazwa FQDN z protokołem
LDAPSMusi to być nazwa FQDN dla użycia
LDAPS
Nazwa FQDN jest potrzebna zamiast adresu IP jako:
"W przypadku certyfikatów SSL certyfikat musi mieć alternatywną nazwę podmiotu (SAN) w certyfikacie, aby był zgodny z połączeniem, sieć SAN jest prezentowana tylko z nazwą DNS zgodną z konfiguracją w ECS".
W związku z tym upewnij się, że strona dostawcy uwierzytelniania ECS, okno dialogowe adresu URL serwera używa nazwy FQDN zamiast adresu IP.
Czyli:
ldaps://fqdn-domain-of-the-ad-or-ldap-server.com
Porty:
Domyślnym portem LDAP jest 389.
Domyślnym portem LDAPS jest 636.
Format adresu URL w przypadku portu innego niż domyślny:
< ldap://Adres IP kontrolera domeny lub nazwa FQDN:<>port> lub ldaps://< nazwa FQDNkontrolera> domeny:<port>
5. Przetestuj login użytkownika domeny.
Następnie przetestuj logowanie użytkownika domeny przy użyciu protokołu LDAPS pod kątem pomyślnego logowania użytkowników domeny za pomocą protokołu LDAPS.
W związku z tym połączenie protokołu ECS-LDAPS działa.
Pozostałe informacje:
W razie potrzeby:
Aby usunąć certyfikat z magazynu zaufanych certyfikatów, utwórz plik xml zgodny z certyfikatem do usunięcia, ale zamiast
"add" jako ładunku danych użyj "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>
Aby użyć pliku ładunku, czyli dodać lub usunąć, użyj następującego polecenia:
# 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
Aby sprawdzić, czy ładunek danych został załadowany pomyślnie, uruchom polecenie 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/>
Jeśli nie masz pewności, czy serwer LDAPS nie jest zgodny z podanym certyfikatem, uruchom następujące polecenie, aby sprawdzić, czy oczekiwana odpowiedź z żądania serwera LDAPS zawiera pasujący certyfikat.
"verify error:num=21:unable to verify the first certificate".
W tym przykładzie serwer LDAPS jest certyfikatem z podpisem własnym, a nie certyfikatem innej firmy, więc może wygenerować dodatkowe ostrzeżenie, że jest on z podpisem własnym:
# 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
Sprawdź plik certyfikatu łączący się z serwerem LDAPS i sprawdź, czy istnieje pasujący certyfikat, czyli Sprawdź kod powrotu: 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)
---
Aby to sprawdzić, użyj tego polecenia:
# 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
Wersja JSON przykładowych poleceń.
Jeśli nie korzystasz z powyższych poleceń XML (uwaga: preferowany format 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}
Aby utworzyć plik JSON w celu zmiany ustawień magazynu zaufanych certyfikatów klienta przy użyciu polecenia curl z ładunkiem JSON:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Moduł json.tool w języku Python może zweryfikować format pliku JSON. Jeśli wystąpi błąd, plik może nie być plikiem JSON. W tym przykładzie nie ma żadnych błędów i wyprowadza plik, więc jest to sformatowany plik JSON:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Uruchom polecenie curl z plikiem JSON jako ładunkiem danych za pomocą polecenia 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
Ładunek XML PUT używa --data-binary w poleceniu curl, podczas gdy ładunek JSON PUT używa
-d W poleceniu curl:
--data-binary
(HTTP) Spowoduje to zaksięgowanie danych dokładnie tak, jak określono, bez dodatkowego przetwarzania:--data-ascii aka -d
(HTTP) Jest to alias -d, --data.
Aby sprawdzić, czy jest ona zaktualizowana, uruchom polecenie 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}
Przetestuj logowanie użytkownika domeny w interfejsie ECS pod kątem zezwolenia
na korzystanie z certyfikatów LDAPSAby sprawdzić zaufany magazyn:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore
Przykład pustego magazynu zaufanych certyfikatów 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":[]}
Format JSON dla polecenia curl add, jednowierszowego pliku ze znakami nowego wiersza zamienionymi na \n i \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-----"]}
Zapoznaj się z podręcznikiem administracyjnym ECS "Dodaj niestandardowy certyfikat LDAP". Użyj tego polecenia, aby dodać lub usunąć:
# 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
Aby sprawdzić przesyłanie:
# 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-----"]}
Aby sprawdzić, czy ustawienia LDAPS nie zostały przywrócone, uruchom polecenie 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}
Jeśli wartość została przywrócona do wartości false, ustaw wartość z powrotem na true. W przypadku zmiany zaufanego magazynu ustawienie może ustawić się na "false".
Uruchom polecenie curl z plikiem JSON jako ładunkiem danych za pomocą polecenia 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
Aby sprawdzić ustawienia 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}
Aby usunąć certyfikat z magazynu zaufanych certyfikatów, utwórz plik JSON zgodny z certyfikatem do usunięcia, ale zamiast "add" jako ładunku danych użyj polecenia "remove":
# cat cert.json
{"remove":["-----BEGIN CERTIFICATE-----\nMIIF1DCCA7ygAwIBAgIUdK2Ao2/45jYdQP0q6Dr1/ULmnc8wDQYJKoZIhvcNAQEL\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nHhrV5ezjYHY=\r\n---END CERTIFICATE-----"]}
Aby dodać lub usunąć, użyj następującego polecenia:
# 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
Aby sprawdzić przesyłanie:
# 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":[]}