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 ์ธ์ฆ์๊ฐ ์ผ์นํ์ง ์์ต๋๋ค.
์ง๋จ
-
๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ
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
-
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
-
์ ์์์
apigee-ca
๋ณด์ ๋น๋ฐ์ ์๋ Apigee CA ์ธ์ฆ์์ ์ผ๋ จ๋ฒํธ๋apigee-cassandra-default-tls
๋ณด์ ๋น๋ฐ์ ์๋ Apigee CA ์ธ์ฆ์(afcc2ef957cebfd52b118b0b1622021
)์ ์ผ์นํฉ๋๋ค. ์ด๋ฅผ ํตํด Cassandra ์ธ์ฆ์๊ฐ ๋์ผํ Apigee CA ์ธ์ฆ์๋ก ์๋ช ๋์์์ ํ์ธํ ์ ์์ต๋๋ค. ์๋ ๋จ๊ณ์ ๋ฐ๋ผ ์ด๋ฅผ ์ถ๊ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค. - 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-----
- 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-----
- 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
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ฌ๋ฐ๋ฅธ Apigee CA ์ธ์ฆ์๊ฐ ์๋ Apigee ํด๋ฌ์คํฐ๋ฅผ ์ ํํฉ๋๋ค.
- ํด๋น ํด๋ฌ์คํฐ์์ Apigee CA ์ธ์ฆ์ ๋ณด์ ๋น๋ฐ์ ํ์ผ๋ก ๋ด๋ณด๋
๋๋ค.
kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
- ํด๋ฌ์คํฐ๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ์ ํํ์ฌ ์์ Apigee CA ์ธ์ฆ์ ๋ณด์ ๋น๋ฐ์ ๋ค๋ฅธ ๋ชจ๋ ํด๋ฌ์คํฐ์ ์ ์ฉํ๊ณ ๋ชจ๋ ํด๋ฌ์คํฐ์์ ๋๋จธ์ง ๋ชจ๋ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
kubectl -n cert-manager apply -f apigee-ca.yaml
apigee
๋ค์์คํ์ด์ค์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๊ธฐ์กด ์ธ์ฆ์๋ฅผ ๋ฐฑ์ ํ์ผ๋ก ๋ด๋ณด๋ ๋๋ค.kubectl -n apigee get certificates --all -o yaml > all-certificates.yaml
- ๋ค์
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 ๋ฐํ์ ์ธ์ฆ์๋ฅผ ์ฌ๋ฐ๊ธํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ๋ชจ๋ ์ธ์ฆ์์ ๋ฐ๊ธ ๋ ์ง๋ฅผ 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
- ๋ชจ๋ ์ธ์ฆ์์ ๋ง๋ฃ์ผ์ ํ์ธํ๊ณ ์ ์ ํ๊ฒ ์ฐ์ฅ๋์๋์ง ํ์ธํฉ๋๋ค.
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์ ๋ฌธ์ํ์ธ์.
- Google Cloud ํ๋ก์ ํธ ID
- Apigee Hybrid ์กฐ์ง
- ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ง์คํนํ๋ ์์ค ๋ฐ ์ ๋ฆฌ์ ์
overrides.yaml
ํ์ผ - Apigee Hybrid ์์ง ํ์์ ๋ช ๋ น์ด ์ถ๋ ฅ
- Apigee Hybrid Cassandra ์์ง ํ์์ ๋ช ๋ น์ด ์ถ๋ ฅ