Edge Management API'yi kullanarak anahtar depoları ve güven depoları oluşturma

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Bu dokümanda, Edge için anahtar depolarının ve güven depolarının nasıl oluşturulacağı, değiştirileceği ve silineceği açıklanmaktadır .

ziyaret edin.

Giriş

TLS gibi ortak anahtar altyapısına dayanan işlevleri yapılandırmak için gerekli anahtarları ve dijital sertifikaları sağlayan anahtar depoları ve güven depoları oluşturmalıdır.

Anahtar depoları, güven deposu ve takma adlara giriş için bkz. Anahtar depoları ve Truststore'lar.

Anahtar deposu oluşturma

Anahtar deposu, kuruluşunuzdaki bir ortama (ör. test veya üretim) özgüdür bahsedeceğim. Bu nedenle, dağıtımdan önce anahtar deposunu bir test ortamında test etmek isterseniz bunu üretim ortamınıza ekleyebilmek için bunu her iki ortamda da oluşturmanız gerekir.

Bir ortamda anahtar deposu oluşturmak için:

  1. Anahtar deposunu oluşturmak için bu bölümdeki API çağrısını kullanın.
  2. Takma ad oluşturun ve takma ada bir sertifika/anahtar çifti yükleyin. Sertifikayı yükleme ve anahtarı, sertifika/anahtar çiftinin biçimine bağlıdır. Aşağıdaki bölümlerde, yüklemenin Her sertifika/anahtar çifti türü:

Bir anahtar deposu oluşturmak için anahtar deposu adını Anahtar deposu veya Truststore API. 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"
}

Sertifikayı ve anahtarı JAR dosyası olarak yükleyin

Öncelikle özel anahtarınız, sertifikanız ve bir manifest ile bir JAR dosyası oluşturmanız gerekir. JAR dosyası aşağıdaki dosyaları 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 tüm sertifikalar Zincirdeki tek bir PEM dosyasına eklenmelidir; burada son sertifikanın imzalanması gerekir tarafından sağlanmalıdır. Sertifikalar, PEM dosyasına doğru sırada eklenmelidir. her sertifika arasında boş bir satır olmalıdır. Bu, şu anlama gelir:

cert -> intermediate cert(1) -> intermediate cert(2) -> … -> root

Anahtar çiftinizi ve sertifikanızı içeren dizinde, /META-INF Ardından, Şu içeriklere sahip /META-INF:

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

descriptor.properties adlı kişiyi şuraya ekle: JAR dosyanız:

jar -uf myKeystore.jar META-INF/descriptor.properties

Sertifika ve özel anahtar içeren JAR dosyalarınızı artık JAR veya PKCS dosyasından API'den takma ad oluşturun:

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 - Sertifikayı ve anahtarı tanımlar. anahtar deposunda. Bir sanal ana makine oluşturduğunuzda, takma addır.
  • key_pword: Özel anahtarın şifresi. Atla bu parametreyi kullanı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"
}

Sertifikayı ve anahtarı PEM dosyası olarak yükleyin

Sertifika ve özel anahtar içeren PEM dosyalarını yüklemek için Sertifika ve anahtar PEM dosyalarından takma ad oluşturma API'si:

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 - Sertifikayı ve anahtarı tanımlar. anahtar deposunda. Bir sanal ana makine oluşturduğunuzda, takma addır.
  • key_pword: Özel anahtarın şifresi. Atla bu parametreyi kullanı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"
}

Sertifikayı ve anahtarı PKCS12/PFX olarak yükleme dosya

Sertifika ve özel anahtar içeren bir PKCS12/PFX dosyasını yüklemek için JAR veya PKCS dosyasından API'den takma ad oluşturun:

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 - Sertifikayı ve anahtarı tanımlar. anahtar deposunda. Bir sanal ana makine oluşturduğunuzda, takma addır.
  • key_pword: Özel anahtarın şifresi. Atla bu parametreyi kullanı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ı bir sertifika oluşturup yükleyin ve anahtar

URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Kendinden imzalı sertifika oluşturmak için kendinden imzalı bir sertifika API oluşturarak takma ad oluşturun ve anahtarı ile bir takma ada yükleyebilirsiniz. Aşağıdaki çağrı, yalnızca kendinden imzalı sertifikayı oluşturun. Daha fazla bilgi eklemek için bu görüşmede değişiklik yapabilirsiniz:

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"
}

Truststore oluşturma

Truststore oluşturmak için kullandığınız API'ler, anahtar deposu oluşturmak için kullanılanlarla aynıdır. İlgili içeriği oluşturmak için kullanılan tek fark, Trustedstore'a PEM dosyası olarak yalnızca sertifika dosyası yüklemenizdir.

Sertifika bir zincirin parçasıysa zincirdeki tüm sertifikaları ayrı olarak yüklemeniz gerekir veya tüm sertifikaları içeren tek bir dosya oluşturun. Boş bir her sertifikanın arasına eklemeniz gerekir.

Bir zincirin parçası olmayan birden fazla kendinden imzalı sertifika yüklemek isterseniz Aynı teknik: Güvenmek istediğiniz birden fazla sertifika varsa bunları tek bir dosyaya yükleyin.

Nihai sertifika, genellikle sertifikayı veren tarafından imzalanır. Örneğin, Trustedstore, istemci sertifikası,client_cert_1 ve istemci sertifikasını veren kuruluşun sertifika, ca_cert.

İki yönlü TLS kimlik doğrulaması sırasında sunucu, Client_cert_1 aracılığıyla TLS el sıkışma sürecinin bir parçası olarak istemciye gönderir.

Alternatif olarak, aynı ca_cert ile imzalanmış client_cert_2 adlı ikinci bir sertifikanız vardır. Ancak client_cert_2'yi güven deposuna yüklemezsiniz. Truststore hâlâ client_cert_1 ve ca_cert olarak kabul edilir.

Sunucu, TLS el sıkışmasının bir parçası olarak client_cert_2 değerini ilettiğinde istek başarılı olur. Bu Client_cert_2 güven deposunda bulunan bir sertifika tarafından imzalanmış olabilir. CA'yı kaldırırsanız sertifikası, ca_cert olarak adlandırılır ve TLS doğrulaması başarısız olur.

Ortamda boş bir güven deposu oluşturmak için Create a Anahtar deposu veya Truststore, anahtar deposu oluşturmak için kullandığınız API:

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

Truststore'u oluşturduktan sonra, aşağıdaki adımları izleyerek sertifikayı PEM dosyası olarak Trustedstore'a yükleyin: Sertifika PEM dosyasından API'den takma ad oluşturun:

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

Anahtar Depolarını Listele"yi kullanarak ortamınızda mevcut anahtar depoları olup olmadığını kontrol edin. ve Truststores API'si gibi:

curl -u orgAdminEmail:password -X GET \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores

Cloud müşterileri için hem ücretsiz deneme kullanan kuruluşlar için varsayılan bir anahtar deposu test ve üretim ortamlarında yayınlanır. Her iki hesap için de bu çağrıya ait aşağıdaki sonuçları göreceksiniz: ortamlar:

[ "freetrial" ]

API'lerinizi test etmek ve API'lerinizi üretime aktarmak için bu varsayılan anahtar deposunu kullanabilirsiniz ancak genellikle çok önemlidir.

Private Cloud müşterileri için ilk kez oluşturulana kadar döndürülen dizi boş olur anahtar deposuna gidin.

Anahtar deposunun içeriğini Anahtar Deposu veya Truststore API'si alın. Bulut kullanan bir müşteri için tek bir sunucu TLS'si gösterilir. sertifika, 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"
}

Takma adla ilgili ayrıntıları öğrenme

Takma adları listeleme API'si:

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",
]

Bir takma adla ilgili olarak, geçerlilik bitiş tarihi ve kartı veren gibi tüm bilgileri almak için Takma ad API'sini alın ve takma adı 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 için sertifikayı indirmek üzere Takma ad API'si için sertifikayı dışa aktarma

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ı yenilemek istiyorsanız yeni sertifika indirebilirsiniz. İstek (CSR). Ardından yeni bir sertifika almak için CSR'yi CA'nıza gönderirsiniz. Bir CSR oluşturmak için takma adı için Takma ad API'si için CSR oluşturun:

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üven deposuna sertifika ekleme

Gelen bağlantılar için iki yönlü TLS (Edge'ye iletilen bir API isteği) kullanırken güven deposu, Edge'e istek göndermesine izin verilen her istemci için bir sertifika veya CA zinciri içerir.

Truststore'u ilk kez yapılandırdığınızda, bilinen istemcilerin tüm sertifikalarını ekleyebilirsiniz. Ancak, zaman içinde yeni istemciler ekledikçe güven deposuna başka sertifikalar eklemek isteyebilirsiniz.

İki yönlü TLS için kullanılan bir güven deposuna yeni sertifikalar eklemek için:

  1. Sanal ana makinede güven deposuna yönelik bir referans kullandığınızdan emin olun.
  2. Truststore'a yeni bir sertifika yüklemek için yukarıdaki Truststore oluşturun.
  3. Truststore referansını aynı değere ayarlayacak şekilde güncelleyin. Bu güncelleme, Edge'in güven deposunu ve yeni sertifikayı yeniden yüklemesine neden olur.

    Daha fazla bilgi için Referansta değişiklik yapma başlıklı makaleyi inceleyin.

Anahtar deposunu/güven deposunu veya takma adı silme

Bir anahtar deposunu/güvenilir depoyu veya takma adı silerken dikkatli olmanız gerekir. Bir anahtar deposunu silerseniz güven deposu veya sanal ana makine, hedef uç nokta ya da hedef sunucu tarafından kullanılan takma ad, Sanal ana makine veya hedef uç nokta/hedef sunucu üzerinden yapılan API çağrıları başarısız olur.

Bir anahtar deposunu/güvenilir depoyu veya takma adı silmek için kullandığınız işlem genellikle şu şekildedir:

  1. Yukarıda açıklandığı şekilde yeni bir anahtar deposu/güven deposu veya takma ad oluşturun.
  2. Gelen bağlantılar için (Edge'ye iletilen bir API isteği) sanal ana makine yapılandırmasını kullanabilir.
  3. Giden bağlantılar için, yani Apigee'den arka uç sunucusuna:
    1. Eski anahtar deposunu ve anahtar takma adını kullanır. TargetEndpoint bir TargetServer'a referans veriyorsa TargetServer tanımını yeni anahtar deposuna referans verecek şekilde güncelleyin. ve anahtar takma adı.
    2. Anahtar deposuna ve güven deposuna doğrudan TargetEndpoint'ten başvuruluyorsa proxy'yi yeniden dağıtmanız gerekir. TargetEndpoint, bir TargetServer tanımı ise; TargetServer tanımı ise, anahtar deposuna ve güven deposu varsa proxy'nin yeniden dağıtımı gerekmez.
    3. API proxy'lerinizin düzgün şekilde çalıştığını doğrulayın.
    4. Anahtar deposunu/güven deposunu veya takma adı silin.

Bkz. Daha fazla bilgi için sertifikayı bir takma adla güncelleyin.

Anahtar deposu veya güven deposu silme

Bir anahtar deposunu veya güven deposunu silmek için Bir Anahtar Deposu veya Truststore API'sini silin:

curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName

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

Anahtar deposundaki veya güven deposundaki bir takma adı silmek için Takma ad API'sini silin:

curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName/aliases/{alias_name}