Cassandra TLS ์ธ์ฆ์„œ ํ™•์ธ ์‹คํŒจ

Apigee ๋ฐ Apigee Hybrid ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.
Apigee Edge ๋ฌธ์„œ ๋ณด๊ธฐ

์ฆ์ƒ

Cassandra ํฌ๋“œ์˜ TLS ์ธ์ฆ์„œ ํ™•์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:456)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:323)
at sun.security.validator.Validator.validate(Validator.java:271)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:278)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:141)
at io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback.verify(ReferenceCountedOpenSslClientContext.java:261)
at io.netty.handler.ssl.ReferenceCountedOpenSslContext$AbstractCertificateVerifier.verify(ReferenceCountedOpenSslContext.java:698)
...
Suppressed: javax.net.ssl.SSLHandshakeException: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
at io.netty.handler.ssl.ReferenceCountedOpenSslEngine.sslReadErrorResult(ReferenceCountedOpenSslEngine.java:1309)
at io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1270)
...

๊ฐ€๋Šฅํ•œ ์›์ธ

์›์ธ ์„ค๋ช… ๋‹ค์Œ์— ๊ด€ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์•ˆ๋‚ด
Apigee CA ์ธ์ฆ์„œ๊ฐ€ Apigee ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์— ์ผ์น˜ํ•˜์ง€ ์•Š์Œ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์— Apigee CA ์ธ์ฆ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด Cassandra์˜ TLS ์ธ์ฆ์„œ ํ™•์ธ์— ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apigee Hybrid

๊ธฐ๋ณธ ์š”๊ฑด

  • Apigee ํด๋Ÿฌ์Šคํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด kubectl์„ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • JSON ์ฝ˜ํ…์ธ ์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜๋ ค๋ฉด jq๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • TLS ์ธ์ฆ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋ ค๋ฉด keytool์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Cert Manager๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ์žฌ๋ฐœ๊ธ‰ํ•˜๋ ค๋ฉด cmctl์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์›์ธ: Apigee ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์— Apigee CA ์ธ์ฆ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง„๋‹จ

  1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ apigee-ca ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ฝ๊ณ  ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์˜ Apigee CA ์ธ์ฆ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n cert-manager get secret apigee-ca -o json | jq -r '.data["tls.crt"]' | base64 -d | keytool -printcert | grep Version -B 10

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl -n cert-manager get secret apigee-ca -o json | jq -r '.data["tls.crt"]' | base64 -d | keytool -printcert | grep Version -B 10
    Owner: CN=apigee-hybrid, O=apigee + O=cluster.local
    Issuer: CN=apigee-hybrid, O=apigee + O=cluster.local
    Serial number: afcc2ef957cebfd52b118b0b1622021
    Valid from: Wed Oct 30 03:09:23 UTC 2024 until: Sat Oct 28 03:09:23 UTC 2034
    Certificate fingerprints:
            SHA1: 32:D9:77:54:B1:FC:CB:6C:9E:28:C1:04:25:49:0D:F5:7C:88:A5:6C
            SHA256: 7C:97:31:3B:56:CD:A3:EF:88:A7:DC:17:AE:D5:F2:A7:6A:48:B3:FC:AA:04:F0:6B:9F:43:C4:5C:6E:15:DE:37
    Signature algorithm name: SHA256withECDSA
    Subject Public Key Algorithm: 256-bit EC (secp256r1) key
    Version: 3
  2. apigee-cassandra-default-tls ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ฝ๊ณ  Cassandra ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์œ„์˜ Apigee CA ์ธ์ฆ์„œ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. apigee-cassandra-default-tls ๋ณด์•ˆ ๋น„๋ฐ€์—๋Š” ca.crt ์•„๋ž˜์— Apigee CA ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    kubectl -n apigee get secret apigee-cassandra-default-tls -o json | jq -r '.data["ca.crt"]' | base64 -d | keytool -printcert | grep Version -B 10

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl -n apigee get secret apigee-cassandra-default-tls -o json | jq -r '.data["ca.crt"]' | base64 -d | keytool -printcert | grep Version -B 10
    Owner: CN=apigee-hybrid, O=apigee + O=cluster.local
    Issuer: CN=apigee-hybrid, O=apigee + O=cluster.local
    Serial number: afcc2ef957cebfd52b118b0b1622021
    Valid from: Wed Oct 30 03:09:23 UTC 2024 until: Sat Oct 28 03:09:23 UTC 2034
    Certificate fingerprints:
            SHA1: 32:D9:77:54:B1:FC:CB:6C:9E:28:C1:04:25:49:0D:F5:7C:88:A5:6C
            SHA256: 7C:97:31:3B:56:CD:A3:EF:88:A7:DC:17:AE:D5:F2:A7:6A:48:B3:FC:AA:04:F0:6B:9F:43:C4:5C:6E:15:DE:37
    Signature algorithm name: SHA256withECDSA
    Subject Public Key Algorithm: 256-bit EC (secp256r1) key
    Version: 3
  3. ์œ„ ์˜ˆ์—์„œ apigee-ca ๋ณด์•ˆ ๋น„๋ฐ€์— ์žˆ๋Š” Apigee CA ์ธ์ฆ์„œ์˜ ์ผ๋ จ๋ฒˆํ˜ธ๋Š” apigee-cassandra-default-tls ๋ณด์•ˆ ๋น„๋ฐ€์— ์žˆ๋Š” Apigee CA ์ธ์ฆ์„œ(afcc2ef957cebfd52b118b0b1622021)์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Cassandra ์ธ์ฆ์„œ๊ฐ€ ๋™์ผํ•œ Apigee CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ด๋ฅผ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. Apigee CA ์ธ์ฆ์„œ pem ํŒŒ์ผ์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n cert-manager get secret apigee-ca -o json | jq -r '.data["tls.crt"]' | base64 -d > apigee-ca.crt

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl -n cert-manager get secret apigee-ca -o json | jq -r '.data["tls.crt"]' | base64 -d > apigee-ca.crt
    cat apigee-ca.crt
    -----BEGIN CERTIFICATE-----
    MIIBvjCCAWSgAwIBAgIQCvzC75V86/1SsRiwsWIgITAKBggqhkjOPQQDAjA/MSUw
    DQYDVQQKEwZhcGlnZWUwFAYDVQQKEw1jbHVzdGVyLmxvY2FsMRYwFAYDVQQDEw1h
    cGlnZWUtaHlicmlkMB4XDTI0MTAzMDAzMDkyM1oXDTM0MTAyODAzMDkyM1owPzEl
    MA0GA1UEChMGYXBpZ2VlMBQGA1UEChMNY2x1c3Rlci5sb2NhbDEWMBQGA1UEAxMN
    YXBpZ2VlLWh5YnJpZDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNSow7pxNvjj
    R/jV66nY/w/tn22tu7oXyZS8tAFBnP7D2fFfIdk4tJub3gw/CsoyNa1cKXwAt7Tw
    SLp1iGJ3CY+jQjBAMA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0G
    A1UdDgQWBBRSjN/cNNbg2kvmddskzdurglxuwTAKBggqhkjOPQQDAgNIADBFAiBp
    pCgNNC8TVEgF8jR5RK9dXZJRcNY39nFY4DqbH6bUJwIhAPdzx5gee3BIWYwlQAYX
    CgtCf4blLNq3KlBWTO993XoY
    -----END CERTIFICATE-----
  5. Cassandra ์ธ์ฆ์„œ pem ํŒŒ์ผ์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n apigee get secrets apigee-cassandra-default-tls -o json | jq -r '.data["tls.crt"]' | base64 -d > apigee-cassandra-default-tls.crt

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl -n apigee get secrets apigee-cassandra-default-tls -o json | jq -r '.data["tls.crt"]' | base64 -d > apigee-cassandra-default-tls.crt
    cat apigee-cassandra-default-tls.crt
    -----BEGIN CERTIFICATE-----
    MIIDSDCCAu6gAwIBAgIQZcYk/VOfGUQEzpLbAvyyNjAKBggqhkjOPQQDAjA/MSUw
    DQYDVQQKEwZhcGlnZWUwFAYDVQQKEw1jbHVzdGVyLmxvY2FsMRYwFAYDVQQDEw1h
    cGlnZWUtaHlicmlkMB4XDTI0MTAzMDAzMTAyMFoXDTM0MTAyODAzMTAyMFowPDE6
    MDgGA1UEAxMxYXBpZ2VlLWNhc3NhbmRyYS1kZWZhdWx0LmFwaWdlZS5zdmMuY2x1
    c3Rlci5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6k8YyB
    m/AV9cgexU8fZ4OFw8M72oxWEF44sFezZB7NpCqIFBxAM/7iL0tF2qU4S4gpcabD
    bn30fKKID8651Kytc7KHGT13Nlj9vQRjd0HJD8Qa8YtRcmGKtp+1fbQOcMPxvuNA
    CzaQyuPwieYKc6D9DpDDkPPCmjVwfaxHmNpdswrt0NQbSecg/xZPXbpzOZ6bUFha
    2vTvSTomiDKIPGhWrMnEMJDjFyjpdYND74HnYgw1XGnC4SQNts/kvXligbVmW+Rz
    oyV7n99eN6cE5J/FHDgiHrBRZUw8ujP2l/p7Y96NcMBnXCsQu6RsCDltXqX1f1pG
    sIjUAFAZZvM0pDECAwEAAaOCAQIwgf8wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW
    MBQGCCsGAQUFBwMCBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaA
    FFKM39w01uDaS+Z12yTN26uCXG7BMIGeBgNVHREEgZYwgZOCGGFwaWdlZS1jYXNz
    YW5kcmEtZGVmYXVsdIIfYXBpZ2VlLWNhc3NhbmRyYS1kZWZhdWx0LmFwaWdlZYIj
    YXBpZ2VlLWNhc3NhbmRyYS1kZWZhdWx0LmFwaWdlZS5zdmOCMWFwaWdlZS1jYXNz
    YW5kcmEtZGVmYXVsdC5hcGlnZWUuc3ZjLmNsdXN0ZXIubG9jYWwwCgYIKoZIzj0E
    AwIDSAAwRQIhANt7WYfSbS4a14Fvf3IXcG+/p3iEGg61suK8jOxtgJMyAiBG3z7Y
    kgR7SWNzSoom4Oznq9NSub7v75kfQJFKEtP0Mg==
    -----END CERTIFICATE-----
  6. Apigee CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cassandra ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    openssl verify -CAfile apigee-ca.crt apigee-cassandra-default-tls.crt

    ์„ฑ๊ณต์ ์ธ ์ถœ๋ ฅ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    openssl verify -CAfile apigee-ca.crt apigee-cassandra-default-tls.crt
    apigee-cassandra-default-tls.crt: OK

    ์‹คํŒจํ•œ ์ถœ๋ ฅ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    openssl verify -CAfile apigee-ca.crt apigee-cassandra-default-tls.crt
    CN = apigee-cassandra-default.apigee.svc.cluster.local
    error 20 at 0 depth lookup: unable to get local issuer certificate
    error apigee-cassandra-default-tls.crt: verification failed

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  1. ์˜ฌ๋ฐ”๋ฅธ Apigee CA ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” Apigee ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•ด๋‹น ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Apigee CA ์ธ์ฆ์„œ ๋ณด์•ˆ ๋น„๋ฐ€์„ ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
    kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
  3. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์„ ํƒํ•˜์—ฌ ์œ„์˜ Apigee CA ์ธ์ฆ์„œ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•˜๊ณ  ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n cert-manager apply -f apigee-ca.yaml
  4. apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐ์กด ์ธ์ฆ์„œ๋ฅผ ๋ฐฑ์—… ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
    kubectl -n apigee get certificates --all -o yaml > all-certificates.yaml
  5. ๋‹ค์Œ cmctl ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๋ชจ๋“  ์ธ์ฆ์„œ๋ฅผ ์žฌ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
    cmctl renew --namespace=apigee --all

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    cmctl renew --namespace=apigee --all
    
      Manually triggered issuance of Certificate apigee/apigee-cassandra-default
      Manually triggered issuance of Certificate apigee/apigee-cassandra-schema-setup-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-cassandra-schema-val-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-cassandra-user-setup-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-connect-agent-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-datastore-guardrails-tls
      Manually triggered issuance of Certificate apigee/apigee-istiod
      Manually triggered issuance of Certificate apigee/apigee-mart-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-metrics-adapter-apigee-telemetry
      Manually triggered issuance of Certificate apigee/apigee-redis-default
      Manually triggered issuance of Certificate apigee/apigee-redis-envoy-default
      Manually triggered issuance of Certificate apigee/apigee-runtime-demo-hybrid-de-dev-b276d3f
      Manually triggered issuance of Certificate apigee/apigee-serving-cert
      Manually triggered issuance of Certificate apigee/apigee-synchronizer-demo-hybrid-de-dev-b276d3f
      Manually triggered issuance of Certificate apigee/apigee-udca-demo-hybrid-de-5fdc6d2
      Manually triggered issuance of Certificate apigee/apigee-watcher-demo-hybrid-de-5fdc6d2

    ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ƒˆ๋กœ ๊ฐ€์ ธ์˜จ Apigee CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  Apigee ๋Ÿฐํƒ€์ž„ ์ธ์ฆ์„œ๋ฅผ ์žฌ๋ฐœ๊ธ‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ชจ๋“  ์ธ์ฆ์„œ์˜ ๋ฐœ๊ธ‰ ๋‚ ์งœ๋ฅผ UTC ์‹œ๊ฐ„๊ณผ ๋น„๊ตํ•˜์—ฌ ์žฌ๋ฐœ๊ธ‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get certificates -n apigee -o json | jq -r '.items[] | "\(.metadata.name): \(.status.notBefore)"'
    date -u

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl get certificates -n apigee -o json | jq -r '.items[] | "\(.metadata.name): \(.status.notBefore)"'
    
      apigee-cassandra-default: 2024-12-16T04:19:58Z
      apigee-cassandra-schema-setup-demo-hybrid-de-5fdc6d2: 2024-12-16T04:19:58Z
      apigee-cassandra-schema-val-demo-hybrid-de-5fdc6d2: 2024-12-16T04:19:58Z
      apigee-cassandra-user-setup-demo-hybrid-de-5fdc6d2: 2024-12-16T04:19:59Z
      apigee-connect-agent-demo-hybrid-de-5fdc6d2: 2024-12-16T04:20:00Z
      apigee-datastore-guardrails-tls: 2024-12-16T04:20:01Z
      apigee-istiod: 2024-12-16T04:20:02Z
      apigee-mart-demo-hybrid-de-5fdc6d2: 2024-12-16T04:20:02Z
      apigee-metrics-adapter-apigee-telemetry: 2024-12-16T04:20:03Z
      apigee-redis-default: 2024-12-16T04:20:04Z
      apigee-redis-envoy-default: 2024-12-16T04:20:04Z
      apigee-runtime-demo-hybrid-de-dev-b276d3f: 2024-12-16T04:20:04Z
      apigee-serving-cert: 2024-12-16T04:20:04Z
      apigee-synchronizer-demo-hybrid-de-dev-b276d3f: 2024-12-16T04:20:05Z
      apigee-udca-demo-hybrid-de-5fdc6d2: 2024-12-16T04:20:06Z
      apigee-watcher-demo-hybrid-de-5fdc6d2: 2024-12-16T04:20:07Z
    
      date -u
      Mon Dec 16 04:23:45 AM UTC 2024
  7. ๋ชจ๋“  ์ธ์ฆ์„œ์˜ ๋งŒ๋ฃŒ์ผ์„ ํ™•์ธํ•˜๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์—ฐ์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get certificates -n apigee -o json | jq -r '.items[] | "\(.metadata.name): \(.status.notAfter)"'

    ์ถœ๋ ฅ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl get certificates -n apigee -o json | jq -r '.items[] | "\(.metadata.name): \(.status.notAfter)"'
    
      apigee-cassandra-default: 2034-12-14T04:19:58Z
      apigee-cassandra-schema-setup-demo-hybrid-de-5fdc6d2: 2034-12-14T04:19:58Z
      apigee-cassandra-schema-val-demo-hybrid-de-5fdc6d2: 2034-12-14T04:19:58Z
      apigee-cassandra-user-setup-demo-hybrid-de-5fdc6d2: 2034-12-14T04:19:59Z
      apigee-connect-agent-demo-hybrid-de-5fdc6d2: 2034-12-14T04:20:00Z
      apigee-datastore-guardrails-tls: 2024-12-16T05:20:01Z
      apigee-istiod: 2024-12-18T04:20:02Z
      apigee-mart-demo-hybrid-de-5fdc6d2: 2034-12-14T04:20:02Z
      apigee-metrics-adapter-apigee-telemetry: 2034-12-14T04:20:03Z
      apigee-redis-default: 2034-12-14T04:20:04Z
      apigee-redis-envoy-default: 2034-12-14T04:20:04Z
      apigee-runtime-demo-hybrid-de-dev-b276d3f: 2034-12-14T04:20:04Z
      apigee-serving-cert: 2025-03-16T04:20:04Z
      apigee-synchronizer-demo-hybrid-de-dev-b276d3f: 2034-12-14T04:20:05Z
      apigee-udca-demo-hybrid-de-5fdc6d2: 2034-12-14T04:20:06Z
      apigee-watcher-demo-hybrid-de-5fdc6d2: 2034-12-14T04:20:07Z

์ง„๋‹จ ์ •๋ณด ์ˆ˜์ง‘ ํ•„์š”

์œ„ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅธ ํ›„์—๋„ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด ๋‹ค์Œ ์ง„๋‹จ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ ํ›„ Google Cloud Customer Care์— ๋ฌธ์˜ํ•˜์„ธ์š”.

  1. Google Cloud ํ”„๋กœ์ ํŠธ ID
  2. Apigee Hybrid ์กฐ์ง
  3. ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋งˆ์Šคํ‚นํ•˜๋Š” ์†Œ์Šค ๋ฐ ์ƒˆ ๋ฆฌ์ „์˜ overrides.yaml ํŒŒ์ผ
  4. Apigee Hybrid ์ˆ˜์ง‘ ํ•„์š”์˜ ๋ช…๋ น์–ด ์ถœ๋ ฅ
  5. Apigee Hybrid Cassandra ์ˆ˜์ง‘ ํ•„์š”์˜ ๋ช…๋ น์–ด ์ถœ๋ ฅ