Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. informacje
Ten dokument opisuje, jak tworzyć, modyfikować i usuwać magazyny kluczy oraz magazyny zaufania dla Edge dla Private Cloud w wersji 4.17.09 i starszych.
Informacje o magazynach kluczy i magazynach zaufania
Sklepy kluczy i repozytoria zaufanych sklepów definiują repozytoria certyfikatów bezpieczeństwa używanych do szyfrowania TLS. Główna różnica między nimi polega na tym, gdzie są używane w procesie nawiązywania połączenia TLS:
- Magazyn kluczy zawiera certyfikat TLS i klucz prywatny służący do identyfikowania
podczas uzgadniania połączenia TLS.
W przypadku jednokierunkowego połączenia TLS, gdy klient łączy się z punktem końcowym TLS na serwerze, magazyn kluczy serwera przedstawia certyfikat serwera (publiczny certyfikat) klientowi. Następnie klient sprawdza, czy certyfikat z urzędem certyfikacji, takim jak Symantec lub VeriSign.
W dwukierunkowym TLS zarówno klient, jak i serwer utrzymują magazyn kluczy z własnym certyfikatem i kluczem prywatnym używanym do wzajemnego uwierzytelniania. - Zaufany magazyn kluczy zawiera certyfikaty używane do weryfikowania certyfikatów otrzymanych w ramach uzgadniania połączenia TLS.
W przypadku jednokierunkowego TLS magazyn zaufania nie jest wymagany, jeśli certyfikat jest podpisany przez prawidłowy urząd certyfikacji. Jeśli certyfikat odebrany przez klienta TLS jest podpisany przez prawidłowy urząd certyfikacji, a następnie klient wysyła żądanie do urzędu certyfikacji. Klient TLS zwykle używa magazynu zaufania do sprawdzania certyfikatów podpisanych samodzielnie otrzymanych od serwera TLS lub certyfikatów, które nie są podpisane przez zaufany urząd certyfikacji. W tym scenariuszu klient wypełnia swój magazyn zaufania certyfikatami, zaufane. Gdy klient otrzyma certyfikat serwera, przychodzący certyfikat jest weryfikowany na podstawie certyfikatów w katalogu zaufanych.
Na przykład klient TLS łączy się z serwerem TLS, który używa samodzielnie podpisanego certyfikatu. Ponieważ jest to certyfikat podpisany samodzielnie, klient nie może go zweryfikować za pomocą urzędu certyfikacji. Zamiast tego klient wstępnie wczytuje samodzielnie podpisany certyfikat serwera w swoim magazynie zaufania. Następnie, gdy klient próbuje połączyć się z serwerem, używa swojego zaufanych magazynów kluczy do weryfikacji certyfikatu otrzymanego od serwera.
W przypadku dwukierunkowego protokołu TLS zarówno klient TLS, jak i serwer TLS mogą korzystać z magazynu zaufania. Magazyn zaufania jest wymagane w przypadku wykonywania dwukierunkowego protokołu TLS, gdy Edge działa jako serwer TLS.
Certyfikaty mogą być wystawiane przez urząd certyfikacji (CA) lub podpisane samodzielnie za pomocą wygenerowanego klucza prywatnego. Jeśli masz dostęp do urzędu certyfikacji, postępuj zgodnie z instrukcjami urzędu dotyczącymi generowania kluczy i wydawania certyfikatów. Jeśli nie masz dostępu do urzędu certyfikacji, do wygenerowania samodzielnie podpisanego certyfikatu przy użyciu jednego z wielu publicznie dostępnych bezpłatnych narzędzi, takich jak openssl.
Wdrażanie magazynu kluczy i magazynu zaufania w przeglądarce Edge
W Edge magazyn kluczy zawiera co najmniej 1 plik JAR, który zawiera:
- certyfikat TLS jako plik PEM – certyfikat podpisany przez urząd certyfikacji (CA), łańcuch certyfikatów, w którym ostatni certyfikat jest podpisany przez urząd certyfikacji, lub certyfikat samopodpisany;
- klucz prywatny jako plik PEM. Edge obsługuje klucze o rozmiarze do 2048 bitów. Hasło jest opcjonalnie.
Magazyn zaufania jest podobny do magazynu kluczy, ale zawiera tylko certyfikaty w pliku PEM, a nie klucze prywatne.
Jeśli certyfikat jest częścią łańcucha, magazyn kluczy/magazyn kluczy musi zawierać wszystkie certyfikaty w w postaci pojedynczych plików PEM lub pojedynczych plików. Jeśli korzystasz z jednego pliku, Certyfikaty muszą być ułożone w kolejności, w której pierwszy certyfikat w pliku jest certyfikatem używanym dla protokołu TLS przez łańcuch certyfikatów, po kolei, do certyfikatu CA. Musisz wstawić pusty wiersz między każdy certyfikat w pliku.
Edge udostępnia interfejs API, którego możesz używać do tworzenia magazynów kluczy i magazynów zaufania. Właściwe interfejsy API to tak samo. Różnica polega na tym, że podczas tworzenia magazynu kluczy przekazujesz plik JAR zawierający certyfikat i klucz prywatny. Podczas tworzenia zaufanej pamięci podręcznej przekazujesz tylko certyfikat w pliku PEM.
Informacje o formacie pliki certyfikatu i klucza
Przykłady w tym dokumencie pokazują certyfikat i klucz TLS zdefiniowane jako pliki PEM, które są zgodne z formatem X.509. Jeśli certyfikat lub klucz prywatny nie są zdefiniowane w pliku PEM, możesz przekonwertować i zapisać go do pliku PEM za pomocą narzędzi takich jak opensl.
Jednak wiele plików .crt i .key jest już w formacie PEM. Jeśli te pliki są tekstowe plików i są ujęte w następujący sposób:
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
lub
-----BEGIN ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY-----
Pliki te są zgodne z formatem PEM i można ich używać w magazynie kluczy lub Truststore bez konwertowania ich do pliku PEM.
Jeśli masz łańcuch certyfikatów i chcesz go użyć w magazynie kluczy lub magazynie zaufania, możesz połączyć wszystkie certyfikaty w jeden plik PEM, umieszczając nową linię między każdym certyfikatem. Certyfikaty muszą być uporządkowane, a ostatni certyfikat musi być certyfikatem głównym lub certyfikatem pośrednim podpisanym przez certyfikat główny:
-----BEGIN CERTIFICATE----- (Your Primary TLS certificate) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Intermediate certificate) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Root certificate or intermediate certificate signed by a root certificate) -----END CERTIFICATE-----
Uzyskiwanie szczegółów o istniejącym magazynie kluczy
Sprawdź, czy w środowisku występują istniejące magazyny kluczy, za pomocą narzędzia Wyświetl listę magazynów kluczy i Truststores API:
curl -X GET \ https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \ -u email:password
W przypadku klientów korzystających z usług w chmurze w organizacjach korzystających z bezpłatnego okresu próbnego udostępniamy domyślny magazyn kluczy zarówno w środowisku testowym, jak i produkcyjnym. Wyniki tej rozmowy powinny być widoczne w obu środowiska:
[ "freetrial" ]
Możesz użyć tego domyślnego magazynu kluczy, aby przetestować interfejsy API i przekazać interfejsy API do środowiska produkcyjnego, ale zwykle tworzysz własny magazyn kluczy z własnym certyfikatem i kluczem przed wdrożeniem w środowisku produkcyjnym.
W przypadku klientów Private Cloud zwrócona tablica jest pusta, dopóki nie utworzysz pierwszej do magazynu kluczy.
Sprawdź zawartość magazynu kluczy za pomocą funkcji Pobierz API Keystore lub Truststore W przypadku klienta chmurowego powinien być widoczny jeden certyfikat TLS serwera – domyślny certyfikat, który Apigee Edge udostępnia dla kont z bezpłatnym okresem próbnym.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \ -u email:password
Odpowiedź powinna wyglądać tak:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
Możesz też wyświetlić te informacje w interfejsie zarządzania brzegiem:
- Zaloguj się w interfejsie zarządzania Edge pod adresem https://enterprise.apigee.com (chmura) lub
http://<ms-ip>:9000
(na urządzeniu lokalnym), gdzie<ms-ip>
to adres IP węzła serwera zarządzania. - W menu interfejsu zarządzania Edge kliknij Administracja > Certyfikaty TLS.
Pobieranie szczegółów certyfikatu TLS
Za pomocą Pobierz szczegóły certyfikatu z interfejsu API magazynu kluczy lub Truststore, aby wyświetlić szczegółowe informacje o certyfikatach TLS magazyn kluczy, takich jak data ważności i wystawca. Najpierw znajdź nazwę certyfikatu w które Cię interesują. Ten przykład pobiera informacje o magazynie kluczy o nazwie „freetrial”.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \ -u email:password
Przykładowa odpowiedź:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
Następnie użyj wartości właściwości certs, aby uzyskać szczegóły certyfikatu:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial/certs/wildcard.apigee.net.crt \ -u email:password
Przykładowa odpowiedź:
{ "certInfo" : [ { "expiryDate" : "Wed, 23 Apr 2014 20:50:02 UTC", "isValid" : "Yes", "issuer" : "CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US", "subject" : CN=*.example.apigee.net, OU=Domain Control Validated", "subjectAlternativeNames" : ["*.example.apigee.net","*.example.apigee.net" ], "validFrom" : "Tue, 15 Apr 2014 09:17:03 UTC", "version" : 3 } ], "name" : "example.apigee.net.crt" }
Możesz też wyświetlić te informacje w interfejsie zarządzania brzegiem:
- Zaloguj się w interfejsie zarządzania brzegiem na stronie https://enterprise.apigee.com (w chmurze) lub
http://<ms-ip>:9000
(lokalnie), gdzie<ms-ip>
jest adresem IP węzła serwera zarządzania. - W menu interfejsu zarządzania Edge kliknij Administracja > Certyfikaty TLS.
W interfejsie Edge możesz określić, z jakim wyprzedzeniem Edge ma informować o wygaśnięciu certyfikatu. Domyślnie w interfejsie są wyróżnione certyfikaty, które wygasną w ciągu najbliższych 10 lat. dni.
Utwórz magazyn kluczy
Magazyn kluczy jest specyficzny dla środowiska w organizacji, na przykład środowiska testowego lub produkcyjnego dla środowiska. Dlatego, jeśli przed wdrożeniem chcesz przetestować magazyn kluczy w środowisku testowym, w środowisku produkcyjnym, musisz utworzyć je w obu środowiskach.
Tworzenie magazynu kluczy to proces dwuetapowy:
- Utwórz plik JAR zawierający certyfikat i klucz prywatny.
- Utwórz magazyn kluczy i prześlij plik JAR.
Tworzenie pliku JAR zawierający certyfikat i klucz prywatny
Utwórz plik JAR z kluczem prywatnym, certyfikatem i pliku manifestu. Plik JAR musi zawierać następujące pliki i katalogi:
/META-INF/descriptor.properties myCert.pem myKey.pem
W katalogu zawierającym parę kluczy i certyfikat utwórz katalog o nazwie /META-INF
. Następnie utwórz w /META-INF
plik o nazwie descriptor.properties
z tą zawartością:
certFile={myCertificate}.pem keyFile={myKey}.pem
Wygeneruj plik JAR zawierający parę kluczy i certyfikat:
jar -cf myKeystore.jar myCert.pem myKey.pem
Dodaj descriptor.properties do pliku JAR:
jar -uf myKeystore.jar META-INF/descriptor.properties
Utwórz magazyn kluczy i prześlij plik Plik JAR
Aby utworzyć magazyn kluczy w środowisku, wystarczy, że podasz jego nazwę w Utwórz za pomocą interfejsu API magazynu kluczy lub zaufaniastore. Nazwa może zawierać tylko znaki alfanumeryczne:
curl -X POST -H "Content-Type: text/xml" \ https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \ -d '<KeyStore name="myKeystore"/>' -u email:password
Przykładowa odpowiedź:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystore" }
Po utworzeniu nazwanego magazynu kluczy w środowisku możesz przesłać pliki JAR, zawierają certyfikat i klucz prywatny przy użyciu funkcji Prześlij plik JAR do interfejsu API magazynu kluczy:
curl -X POST -H "Content-Type: multipart/form-data" \ -F file="@myKeystore.jar" -F password={key_pass} \ "https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/{myKeystore}/keys?alias={key_alias}" \ -u email:password
gdzie opcja -F
określa ścieżkę do pliku JAR.
W tym wywołaniu podajesz 2 parametry zapytania:
alias
– identyfikuje certyfikat i klucz w magazynie kluczy. Podczas tworzenia hosta wirtualnego odwołujesz się do certyfikatu i klucza za pomocą jego aliasu.password
– hasło dla klucz prywatny. Pomiń ten parametr, jeśli klucz prywatny nie ma hasła.
Sprawdź, czy klucz został przesłany prawidłowo:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystore \ -u email:password
Przykładowa odpowiedź:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
Tworzenie magazynu zaufania
Interfejsy API używane do tworzenia zaufanych magazynów kluczy są takie same jak te używane do tworzenia magazynów kluczy. Jedyną różnicą jest to, że przekazujesz plik certyfikatu w formacie PEM, a nie JAR.
Jeśli certyfikat jest częścią łańcucha, musisz przesłać wszystkie certyfikaty należące do łańcucha oddzielnie
do magazynu zaufania, lub utworzyć pojedynczy plik zawierający wszystkie certyfikaty; dołącz nowy wiersz między
każdy certyfikat w pliku. Ostateczny certyfikat jest zwykle podpisywany przez wystawcę certyfikatu. Na przykład do zaufanej pamięci wyślij certyfikat klienta client_cert_1
i certyfikat wystawcy certyfikatu klienta ca_cert
.
Podczas dwukierunkowego uwierzytelniania TLS uwierzytelnianie klienta kończy się powodzeniem, gdy serwer wysyła
client_cert_1
do klienta jako
są częścią procesu uzgadniania połączenia TLS.
Możesz też mieć drugi certyfikat (client_cert_2
), podpisany tym samym certyfikatem,
ca_cert
Nie musisz jednak przesyłać pliku client_cert_2
do repozytorium zaufania. Sklep z zaufaniem nadal zawiera client_cert_1
i ca_cert
.
Gdy serwer przekaże client_cert_2
w ramach uzgadniania połączenia TLS, żądanie zostanie zrealizowane. Dzieje się tak, ponieważ Edge pozwala na pomyślne przeprowadzenie weryfikacji TLS, gdy client_cert_2
nie istnieje w magazynie zaufania, ale został podpisany przez certyfikat, który znajduje się w magazynie zaufania. Jeśli usuniesz z repozytorium zaufania certyfikat urzędu certyfikacji ca_cert
, weryfikacja TLS się nie powiedzie.
Utwórz pusty magazyn zaufania w środowisku, korzystając z interfejsu Create a Keystore or Truststore (Utwórz magazyn kluczy lub magazyn zaufania), czyli tego samego interfejsu API, którego używasz do tworzenia magazynu kluczy:
curl -X POST -H "Content-Type: text/xml" -d \ '<KeyStore name="myTruststore"/>' \ https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \ -u email:password
Prześlij certyfikat jako plik PEM do repozytorium zaufania, używając interfejsu API Prześlij certyfikat do repozytorium zaufania:
curl -X POST -H "Content-Type: multipart/form-data" -F file="@trust.pem" \ https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myTruststore/certs?alias=myTruststore \ -u email:password
gdzie opcja -F
określa
ścieżkę do pliku PEM.
Usuwanie magazynu kluczy lub magazynu zaufania
Aby usunąć klucz lub zaufaną kwaterę, użyj interfejsu API Delete a Keystore or Truststore:
curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystoreName \ -u email:password
Przykładowa odpowiedź:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystoreName" }
Jeśli usuniesz repozytorium kluczy lub repozytorium zaufania używane przez hosta wirtualnego lub docelowy punkt końcowy/docelowy/serwer, wszystkie wywołania interfejsu API przez hosta wirtualnego lub docelowy punkt końcowy/docelowy/serwer nie powiedzie się.