Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Bu belgede, Cloud için Edge ve Özel Bulut için Edge 4.18.01 ve sonraki sürümlerinde anahtar depolarının ve güven depolarının nasıl oluşturulacağı, değiştirileceği ve silineceği açıklanmaktadır.
Giriş
TLS gibi ortak anahtar altyapısına dayalı işlevleri yapılandırmak için gerekli anahtarları ve dijital sertifikaları sağlayan anahtar depoları ve güven depoları oluşturmanız gerekir.
Anahtar depoları, güvenilir anahtar depoları ve takma adlar hakkında bilgi edinmek için Anahtar Depoları ve Güvenilir Anahtar Depoları başlıklı makaleye göz atın.
Anahtar deposu oluşturma
Anahtar deposu, kuruluşunuzdaki bir ortama (ör. test veya üretim ortamı) özgüdür. Bu nedenle, üretim ortamınıza dağıtmadan önce test ortamında anahtar deposunu test etmek istiyorsanız her iki ortamda da oluşturmanız gerekir.
Bir ortamda anahtar deposu oluşturmak için:
- Anahtar deposunu oluşturmak için bu bölümdeki API çağrısını kullanın.
- Bir takma ad oluşturun ve takma ada sertifika/anahtar çifti yükleyin. Sertifikayı ve anahtarı yükleme şekliniz, sertifika/anahtar çiftinin biçimine bağlıdır. Aşağıdaki bölümlerde her tür sertifika/anahtar çiftinin nasıl yükleneceği açıklanmaktadır:
Anahtar deposu oluşturmak için Create a Keystore or Truststore API'sinde anahtar deposu adını belirtin. Anahtar deposu adı yalnızca alfanümerik karakterler içerebilir:
curl -X POST -u orgAdminEmail:password -H "Content-Type: text/xml" \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores \
-d '<KeyStore name="myKeystore"/>'Örnek yanıt:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystore" }
Sertifika ve anahtarı JAR dosyası olarak yükleme
Öncelikle özel anahtarınız, sertifikanız ve bir manifest ile bir JAR dosyası oluşturmanız gerekir. JAR dosyası aşağıdaki dosya ve dizinleri içermelidir:
/META-INF/descriptor.properties myCert.pem myKey.pem
Bir anahtar deposu JAR'ı yalnızca bu üç dosyayı içerebilir. Sertifika zinciriniz varsa zincirdeki tüm sertifikalar tek bir PEM dosyasına eklenmelidir. Bu dosyada son sertifika, kök CA tarafından imzalanmalıdır. Sertifikalar, PEM dosyasına doğru sırada eklenmelidir. Her sertifika arasında boş bir satır olmalıdır. Yani:
cert -> intermediate cert(1) -> intermediate cert(2) -> … -> root
Anahtar çiftinizi ve sertifikanızı içeren dizinde /META-INF adlı bir dizin oluşturun. Ardından, /META-INF içinde aşağıdaki içeriklere sahip descriptor.properties adlı bir dosya oluşturun:
certFile={myCertificate}.pem keyFile={myKey}.pem
Anahtar çiftinizi ve sertifikanızı içeren JAR dosyasını oluşturun:
jar -cf myKeystore.jar myCert.pem myKey.pem
JAR dosyanıza descriptor.properties ekleyin:
jar -uf myKeystore.jar META-INF/descriptor.properties
Artık Create an alias from a JAR or PKCS file API'sini kullanarak sertifika ve özel anahtar içeren JAR dosyalarınızı yükleyebilirsiniz:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F file="@myKeystore.jar" -F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=keycertjar"
Burada -F seçeneği, JAR dosyasının yolunu belirtir.
Bu çağrıda şunları belirtirsiniz:
alias_name- Anahtar deposundaki sertifikayı ve anahtarı tanımlar. Sanal ana makine oluşturduğunuzda sertifikaya ve anahtara, takma adıyla referans verirsiniz.key_pword: Özel anahtarın şifresi. Özel anahtarın şifresi yoksa bu parametreyi atlayın.
Anahtar deponuzun düzgün şekilde yüklendiğini doğrulayın:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
Örnek yanıt:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
Sertifika ve anahtarı PEM dosyaları olarak yükleyin
Create an alias from certificate and key PEM files API'sini kullanarak sertifika ve özel anahtar içeren PEM dosyalarını yükleyin:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F keyFile="@server.key" -F certFile="@signed.crt" \
-F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=keycertfile"
Burada -F seçeneği, PEM dosyalarının yollarını belirtir.
Bu çağrıda şunları belirtirsiniz:
alias_name- Anahtar deposundaki sertifikayı ve anahtarı tanımlar. Sanal ana makine oluşturduğunuzda sertifikaya ve anahtara, takma adıyla referans verirsiniz.key_pword: Özel anahtarın şifresi. Özel anahtarın şifresi yoksa bu parametreyi atlayın.
Anahtar deponuzun düzgün şekilde yüklendiğini doğrulayın:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
Örnek yanıt:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
Sertifika ve anahtarı PKCS12/PFX dosyası olarak yükleme
Create an alias from a JAR or PKCS file API'sini kullanarak sertifika ve özel anahtar içeren bir PKCS12/PFX dosyası yükleyin:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" \
-F file="@myKeystore.p12" -F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=pkcs12"
Burada -F seçeneği, P12 dosyasının yolunu belirtir.
Bu çağrıda şunları belirtirsiniz:
alias_name- Anahtar deposundaki sertifikayı ve anahtarı tanımlar. Sanal ana makine oluşturduğunuzda sertifikaya ve anahtara, takma adıyla referans verirsiniz.key_pword: Özel anahtarın şifresi. Özel anahtarın şifresi yoksa bu parametreyi atlayın.
Anahtar deponuzun düzgün şekilde yüklendiğini doğrulayın:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
Örnek yanıt:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
Kendinden imzalı sertifika ve anahtar oluşturup yükleme
Kendinden imzalı bir sertifika ve anahtar oluşturup bunları bir takma ada yüklemek için Create an alias by generating a self-signed certificate API'sini kullanabilirsiniz. Aşağıdaki çağrıda, yalnızca kendinden imzalı sertifika oluşturmak için gereken bilgiler belirtilmektedir. Bu çağrıyı ek bilgiler eklemek için değiştirebilirsiniz:
curl -u orgAdminEmail:password -X POST --header "Content-Type: application/json" \
-d "{
"alias": "selfsigned",
"subject": {
"commonName": "mycert"
}
}" \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?format=selfsignedcert"
Yanıt şu şekilde görünmelidir:
{ "alias": "selfsigned", "certsInfo": { "certInfo": [ { "basicConstraints": "CA:FALSE", "expiryDate": 1491497204000, "isValid": "Yes", "issuer": "CN=mycert", "publicKey": "RSA Public Key, 2048 bits", "serialNumber": "00:d1:b4:78:e1", "sigAlgName": "SHA256withRSA", "subject": "CN=mycert", "subjectAlternativeNames": [], "validFrom": 1459961204000, "version": 3 } ], "certName": "selfsigned-cert" }, "keyName": "selfsigned" }
Güven deposu oluşturma
Güvenli anahtar deposu oluşturmak için kullandığınız API'ler, anahtar deposu oluşturmak için kullanılanlarla aynıdır. Tek fark, güvenli depoya yalnızca PEM dosyası olarak bir sertifika dosyası yüklemenizdir.
Sertifika bir zincirin parçasıysa zincirdeki tüm sertifikaları güvenli depoya ayrı ayrı yüklemeniz veya tüm sertifikaları içeren tek bir dosya oluşturmanız gerekir. Dosyadaki her sertifika arasına boş bir satır eklemeniz gerekir.
Zincirde yer almayan birden fazla kendinden imzalı sertifika yüklemek istiyorsanız aynı tekniği kullanın: Güvenmek istediğiniz birden fazla sertifika varsa bunları tek bir dosyada yükleyin.
Nihai sertifika genellikle sertifikayı veren kuruluş tarafından imzalanır. Örneğin, güven deposuna bir istemci sertifikası (client_cert_1) ve istemci sertifikası verenin sertifikası (ca_cert) yüklersiniz.
İki yönlü TLS kimlik doğrulaması sırasında, sunucu TLS el sıkışma sürecinin bir parçası olarak istemciye client_cert_1'i gönderdiğinde istemci kimlik doğrulaması başarılı olur.
Alternatif olarak, aynı sertifika (ca_cert) tarafından imzalanmış ikinci bir sertifikanız (client_cert_2) var. Ancak, client_cert_2'yi güvenli depoya yüklemezsiniz. Güvenli depoda hâlâ client_cert_1 ve ca_cert bulunur.
Sunucu, TLS el sıkışması kapsamında client_cert_2'yi ilettiğinde istek başarılı olur. Bunun nedeni, Edge'in client_cert_2 güvenilen sertifika deposunda bulunmadığı ancak güvenilen sertifika deposunda bulunan bir sertifika tarafından imzalandığı durumlarda TLS doğrulamasının başarılı olmasına izin vermesidir. CA sertifikası olan ca_cert'ı güvenli depodan kaldırırsanız TLS doğrulaması başarısız olur.
Anahtar deposu veya güven deposu oluşturma'yı kullanarak ortamda boş bir güven deposu oluşturun. Bu, anahtar deposu oluşturmak için kullandığınız API ile aynıdır:
curl -u orgAdminEmail:password -X POST -H "Content-Type: text/xml" \
-d '<KeyStore name="myTruststore"/>' \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores
Güven deposunu oluşturduktan sonra Create an alias from a certificate PEM file API'yi kullanarak sertifikayı PEM dosyası olarak güven deposuna yükleyin:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F certFile="@cert.pem" \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myTruststore/aliases?alias=myTruststore&format=keycertfile"
Burada -F seçeneği, PEM dosyasının yolunu belirtir.
Mevcut bir anahtar deposu veya güven deposu hakkında ayrıntılı bilgi edinme
List Keystores and Truststores API'yi kullanarak ortamınızda mevcut anahtar depoları olup olmadığını kontrol edin:
curl -u orgAdminEmail:password -X GET \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores
Bulut müşterileri için hem test hem de üretim ortamlarında ücretsiz deneme kuruluşlarına varsayılan bir anahtar deposu sağlanır. Bu çağrı için her iki ortamda da aşağıdaki sonuçları görmeniz gerekir:
[ "freetrial" ]
API'lerinizi test etmek ve üretim ortamına aktarmak için bu varsayılan anahtar deposunu kullanabilirsiniz. Ancak genellikle üretim ortamına dağıtım yapmadan önce kendi sertifikanız ve anahtarınızla kendi anahtar deponuzu oluşturursunuz.
Özel bulut müşterileri için, ilk anahtar deponuzu oluşturana kadar döndürülen dizi boştur.
Get a Keystore or Truststore API'sini kullanarak anahtar deposunun içeriğini kontrol edin. Bir bulut müşterisi için tek bir sunucu TLS sertifikası görmeniz gerekir. Bu, Apigee Edge'in ücretsiz deneme hesapları için sağladığı varsayılan sertifikadır.
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/freetrial
Yanıt şu şekilde görünmelidir:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
Bir takma ad hakkında ayrıntılı bilgi edinme
List aliases API'sini kullanarak bir anahtar deposu için tüm takma adların listesini alın:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases"
Yanıt şu şekilde görünmelidir:
[ "alias1", "alias2", "alias3", ]
Son kullanma tarihi ve veren kuruluş gibi bir takma adla ilgili tüm bilgileri almak için Get alias API'sini kullanın ve takma adını belirtin:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}"
Yanıt şu şekilde görünmelidir:
{ "alias": "alias1", "certsInfo": { "certInfo": [ { "basicConstraints": "CA:TRUE", "expiryDate": 1459371335000, "isValid": "No", "issuer": "EMAILADDRESS=foo@bar.com, CN=smg, OU=doc, O=Internet Widgits Pty Ltd, L=noho, ST=Some-State, C=AU", "publicKey": "RSA Public Key, 1024 bits", "serialNumber": "00:86:a0:9b:5b:91:a9:fe:92", "sigAlgName": "SHA256withRSA", "subject": "EMAILADDRESS=foo@bar.com, CN=smg, OU=doc, O=Internet Widgits Pty Ltd, L=noho, ST=Some-State, C=AU", "subjectAlternativeNames": [], "validFrom": 1456779335000, "version": 3 } ], "certName": "new\-cert" }, "keyName": "newssl20" }
Bir takma adın sertifikasını indirmek için Export a certificate for an alias API'sini kullanın:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/e/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}/certificate"
Yanıt şu şekilde görünmelidir:
-----BEGIN CERTIFICATE----- MIIDojCCAwugAwIBAgIJAIagm1uRqf6SMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD ... RBUkaTe/570sLHY0tvkIm5tEX36ESw== -----END CERTIFICATE-----
Süresi dolmuş bir sertifikanız varsa ve bunu yenilemek istiyorsanız Sertifika İmzalama İsteği (CSR) indirebilirsiniz. Ardından, yeni bir sertifika almak için CSR'yi CA'nıza gönderirsiniz. Bir takma ad için CSR oluşturmak üzere Takma ad için CSR oluşturma API'sini kullanın:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}/csr"
Yanıt şu şekilde görünmelidir:
-----BEGIN CERTIFICATE REQUEST----- MIIB1DCCAT0CAQAwgZMxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRl ... RF5RMytbkxkvPxIE17mDKJH0d8aekv/iEOItZ+BtQg+EibMUkkjTzQ== -----END CERTIFICATE REQUEST-----
İki yönlü TLS için güvenilir sertifika deposuna sertifika ekleme
Gelen bağlantılar için iki yönlü TLS kullanılırken (yani Edge'e bir API isteği gönderilirken) güven deposunda, Edge'e istek göndermesine izin verilen her istemci için bir sertifika veya CA zinciri bulunur.
Güven deposunu ilk yapılandırdığınızda bilinen istemcilerin tüm sertifikalarını ekleyebilirsiniz. Ancak zaman içinde yeni istemciler ekledikçe güven deposuna ek sertifikalar eklemek isteyebilirsiniz.
İki yönlü TLS için kullanılan bir güvenilir sertifika deposuna yeni sertifikalar eklemek üzere:
- Sanal ana makinede güvenli depoya referans kullandığınızdan emin olun.
- Güvenilirlik deposu oluşturma bölümünde yukarıda açıklandığı gibi güvenilirlik deposuna yeni bir sertifika yükleyin.
Güven deposu referansını aynı değere ayarlamak için güncelleyin. Bu güncelleme, Edge'in güven deposunu ve yeni sertifikayı yeniden yüklemesine neden olur.
Daha fazla bilgi için Referansı değiştirme başlıklı makaleyi inceleyin.
Anahtar deposunu/güven deposunu veya takma adı silme
Bir anahtar deposunu/güven deposunu veya takma adı silerken dikkatli olmanız gerekir. Bir sanal ana makine, hedef uç nokta veya hedef sunucu tarafından kullanılan bir anahtar deposunu, güvenilen anahtar deposunu ya da takma adı silerseniz sanal ana makine veya hedef uç nokta/hedef sunucu üzerinden yapılan tüm API çağrıları başarısız olur.
Genellikle, bir anahtar deposunu/güven deposunu veya takma adı silmek için kullandığınız işlem şöyledir:
- Yukarıda açıklandığı şekilde yeni bir anahtar deposu/güven deposu veya takma ad oluşturun.
- Gelen bağlantılar (yani Edge'e yapılan API istekleri) için sanal ana makine yapılandırmasını yeni anahtar deposuna ve anahtar takma adına referans verecek şekilde güncelleyin.
- Giden bağlantılar (Apigee'den bir arka uç sunucusuna) için:
- Eski anahtar deposuna ve anahtar takma adına referans veren tüm API proxy'lerinin TargetEndpoint yapılandırmasını, yeni anahtar deposuna ve anahtar takma adına referans verecek şekilde güncelleyin. TargetEndpoint'iniz bir TargetServer'a referans veriyorsa TargetServer tanımını yeni anahtar deposuna ve anahtar takma adına referans verecek şekilde güncelleyin.
- Anahtar deposu ve güven deposu doğrudan TargetEndpoint tanımından referans alınıyorsa proxy'yi yeniden dağıtmanız gerekir. TargetEndpoint, bir TargetServer tanımına, TargetServer tanımı ise anahtar deposuna ve güvenilen sertifika deposuna referans veriyorsa proxy'nin yeniden dağıtılması gerekmez.
- API proxy'lerinizin düzgün çalıştığını doğrulayın.
- Anahtar deposunu/güven deposunu veya takma adı silin.
Daha fazla bilgi için Bir takma addaki sertifikayı güncelleme başlıklı makaleyi inceleyin.
Anahtar deposunu veya güven deposunu silme
Delete a Keystore or Truststore API'sini kullanarak bir anahtar deposunu veya güvenilen sertifika deposunu silebilirsiniz:
curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName
Bir sanal ana makine tarafından kullanılan bir anahtar deposunu veya güven deposunu silip yeniden oluşturursanız API proxy'lerinizi yeniden dağıtmanız gerekir.
Takma ad silme
Delete alias API'sini kullanarak bir anahtar deposundaki veya güven deposundaki bir takma adı silebilirsiniz:
curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName/aliases/{alias_name}