Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Halaman ini menjelaskan sertifikat root certificate authority (CA) Apigee yang mengamankan koneksi TLS ke runtime Apigee, dan menjelaskan proses rotasi. Bagian ini juga mencantumkan pola akses yang terpengaruh oleh rotasi dan langkah-langkah yang harus Anda lakukan untuk menyiapkan aplikasi.
Tentang sertifikat CA root
Setiap organisasi Apigee memiliki sertifikat CA root yang dikelola Google yang menerbitkan sertifikat server yang digunakan oleh ingress runtime Apigee untuk TLS termination. Saat klien membuka koneksi HTTPS ke instance Apigee, server akan menampilkan sertifikat yang dirantai ke CA root ini. Klien yang memvalidasi sertifikat server harus memercayai CA root, baik secara implisit (saat traffic mengalir melalui load balancer yang dikelola pelanggan yang menghentikan TLS) maupun secara eksplisit (saat klien terhubung langsung ke runtime Apigee).
Sertifikat CA root ditampilkan dalam
respons API organizations.get
di kolom caCertificates[]. Kolom ini adalah
array karena, selama rotasi, sertifikat CA root saat ini dan yang akan datang
ditampilkan secara bersamaan sehingga klien dapat memercayai
keduanya sebelum peralihan.
Alasan sertifikat CA root dirotasi
Sertifikat CA root Apigee memiliki periode validitas yang panjang tetapi terbatas (biasanya 10 tahun). Sertifikat dirotasi sebelum masa berlakunya habis sehingga:
- Sertifikat yang mengamankan runtime Apigee tidak pernah berakhir saat digunakan.
- Saluran komunikasi internal antar-komponen Apigee akan terus berfungsi tanpa gangguan.
Rotasi adalah operasi rutin yang direncanakan. Apigee menjalankannya sesuai jadwal yang Google Cloud dikontrol. Anda tidak memulai rotasi, dan rotasi itu sendiri tidak mengubah endpoint runtime Apigee atau antarmuka API Apigee.
Tahapan dan linimasa rotasi
Apigee mengganti sertifikat CA root dalam empat tahap. Setiap tahap dilakukan secara bertahap: diterapkan di setiap wilayah di seluruh organisasi Anda dan membutuhkan waktu untuk diselesaikan. Tabel di bawah menjelaskan efek yang terlihat oleh pelanggan dari setiap tahap dan waktu dimulainya yang umum, yang diukur relatif terhadap tanggal habis masa berlaku CA root saat ini.
| Tahap | Waktu umum | Isi caCertificates[] |
Yang terjadi |
|---|---|---|---|
| 1. Sertifikat baru dipublikasikan | Sekitar 1 tahun sebelum masa berlaku sertifikat saat ini berakhir | Saat ini dan baru (keduanya) | Apigee membuat sertifikat CA root baru dan menambahkannya ke
truststore setiap komponen milik Apigee. Sertifikat
baru juga muncul dalam respons
organizations.get
sehingga Anda dapat mengambil dan menyajikannya. Runtime
Apigee terus memberikan sertifikat server
yang ditandatangani oleh CA root saat ini, sehingga klien yang ada belum terpengaruh. Apigee mengirimkan notifikasi pelanggan saat tahap ini
dimulai. |
| 2. Pengalihan sertifikat entitas akhir | Sekitar 60 hari sebelum masa berlaku sertifikat saat ini berakhir | Saat ini dan baru (keduanya) | Runtime Apigee mulai menampilkan sertifikat server (leaf) baru yang ditandatangani oleh root CA baru. Klien yang hanya memercayai CA root saat ini akan gagal melakukan validasi TLS setelah tahap ini selesai di wilayahnya. Klien yang memercayai kedua sertifikat (atau hanya sertifikat baru) akan terus berfungsi. Apigee mengirimkan notifikasi pelanggan saat tahap ini dimulai. |
| 3. Sertifikat lama dibatalkan | Sekitar 30 hari sebelum masa berlaku sertifikat saat ini berakhir | Khusus produk baru | Apigee menghapus CA root lama dari truststore internal
dan berhenti menampilkannya dari
organizations.get.
Klien yang masih memercayai hanya CA root lama tidak dapat terhubung.
Apigee mengirimkan notifikasi pelanggan saat tahap ini
dimulai. |
| 4. Rotasi selesai | Pada tanggal habis masa berlaku asli | Khusus produk baru | Apigee akan menghapus CA root lama secara permanen dan rotasi selesai. CA root baru kini menjadi satu-satunya CA root, dan siklus baru sekitar 10 tahun dimulai. Apigee mengirimkan notifikasi pelanggan saat tahap ini selesai. |
Siapa yang terpengaruh oleh rotasi
Apakah rotasi memerlukan tindakan dari Anda bergantung pada cara klien menjangkau runtime Apigee Anda:
| Pola akses | Tindakan diperlukan? | Mengapa |
|---|---|---|
| Perutean eksternal (MIG) dengan Load Balancer Aplikasi eksternal Google Cloud | Tidak | Load balancer eksternal Anda menghentikan TLS menggunakan sertifikat yang Anda kelola. Klien memercayai sertifikat Anda, bukan CA root Apigee. Rotasi tidak memengaruhi klien ini. |
| Perutean internal (VPC), Opsi TLS 1 (Load Balancer Aplikasi HTTPS internal) | Tidak | Load balancer internal Anda menghentikan TLS menggunakan sertifikat yang Anda kelola. Klien memercayai sertifikat Anda, bukan CA root Apigee. Rotasi tidak memengaruhi klien ini. |
| Perutean internal (VPC), Opsi TLS 2 (nama domain yang sepenuhnya memenuhi syarat default internal) | Ya | Klien terhubung langsung ke load balancer internal yang dikelola Apigee dan memvalidasi sertifikat server yang dikeluarkan Apigee. Setiap klien harus memercayai CA root baru sebelum pengalihan rotasi. |
| Koneksi TCP langsung ke IP ingress instance runtime (misalnya, melalui load balancer TCP internal) | Ya | Klien memvalidasi sertifikat server yang dikeluarkan Apigee. Setiap klien harus memercayai CA root baru sebelum peralihan berlangsung. |
Opsi non-TLS (flag curl -k, atau klien apa pun
yang melewati validasi sertifikat)
|
Tidak | Klien tidak memvalidasi sertifikat server, sehingga rotasi tidak memiliki efek fungsional. Opsi ini tidak direkomendasikan di luar lingkungan pengujian. |
Cara mempersiapkan rotasi
Jika Anda menggunakan salah satu pola akses yang memerlukan tindakan, ikuti langkah-langkah ini sebelum tanggal peralihan rotasi yang Anda terima dalam notifikasi rotasi.
Langkah 1: Temukan instance runtime Apigee
Mencantumkan instance runtime Apigee di organisasi Anda. Setiap instance memiliki IP ingress khusus, yang merupakan host yang dijangkau oleh klien direct-connect.
# Ensure $AUTH and $PROJECT_ID are set in your environment curl -H "$AUTH" \ https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances \ | jq -r '.instances[] | "\(.name)\t\(.host)"'
Jika klien Anda terhubung ke host selain IP ini (misalnya, nama DNS Anda sendiri di depan load balancer internal), gunakan host tersebut.
Langkah 2: Ambil sertifikat CA root saat ini dan yang akan datang
Baca kolom caCertificates[] dari
organizations.get. Selama rotasi, array ini berisi
CA root saat ini dan yang baru, yang masing-masing dienkode base64:
curl -H "$AUTH" \
https://apigee.googleapis.com/v1/organizations/$PROJECT_ID \
| jq -r '.caCertificates[]' \
| awk '/-----BEGIN/{i++}{print > ("ca_" i ".b64")}'Dekode setiap entri ke format PEM dan periksa periode validitas untuk mengidentifikasi sertifikat baru:
for f in ca_*.b64; do
base64 -d "$f" > "${f%.b64}.crt"
echo "==> ${f%.b64}.crt"
openssl x509 -in "${f%.b64}.crt" -noout -subject -issuer -dates
doneSertifikat dengan tanggal notAfter yang lebih baru adalah root CA baru.
Langkah 3: Tambahkan CA root baru ke truststore Anda
Tambahkan sertifikat CA root baru ke setiap truststore klien yang saat ini memercayai CA root Apigee. Biarkan CA root saat ini tetap ada hingga cutover selesai, sehingga koneksi terus berfungsi selama periode cutover. Setelah peralihan, Anda dapat menghapus CA root lama dari truststore Anda.
Prosedur yang tepat bergantung pada klien. Kasus umum mencakup:
- Menambahkan sertifikat ke truststore tingkat OS (misalnya,
/etc/ssl/certs/pada sistem berbasis Debian, diikuti denganupdate-ca-certificates). - Menambahkan sertifikat ke truststore yang dikelola aplikasi (misalnya, keystore
cacertsJava, paketssl_trusted_certificateNginx, atau paket kepercayaanvalidation_contextEnvoy). - Menambahkan sertifikat ke
SecretatauConfigMapKubernetes yang di-mount ke pod workload Anda.
Langkah 4: Pastikan koneksi berfungsi dengan CA root baru
Setelah Anda menyiapkan CA root baru, verifikasi bahwa permintaan HTTPS ke runtime Apigee berhasil saat Anda hanya memercayai sertifikat baru:
# Ensure $ENV_GROUP_HOSTNAME and $INTERNAL_LOAD_BALANCER_IP are set curl -is -H "Host: $ENV_GROUP_HOSTNAME" \ https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \ --cacert NEW_CA_FILE \ --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
Jika perintah ini berhasil, klien Anda siap untuk peralihan. Jika gagal, klien belum memercayai root CA baru — buka kembali Langkah 3.
Contoh: Perutean internal (VPC), Opsi TLS 2
Contoh ini menunjukkan langkah-langkah rotasi untuk pola akses yang didokumentasikan dalam Perutean internal (VPC), Opsi TLS 2, di mana klien terhubung langsung ke load balancer internal Apigee dan memvalidasi sertifikat yang ditandatangani sendiri Apigee. Pola akses ini adalah yang paling sering terpengaruh oleh rotasi.
Sebelum peralihan:
- Dapatkan IP load balancer internal Apigee:
export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" \ https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s \ | jq -r '.instances[0].host')
- Ambil CA root saat ini dan yang baru ke dalam file terpisah dan identifikasi CA
yang baru:
curl -H "$AUTH" \ https://apigee.googleapis.com/v1/organizations/$PROJECT_ID \ | jq -r '.caCertificates[]' \ | awk '/-----BEGIN/{i++}{print > ("ca_" i ".b64")}' for f in ca_*.b64; do base64 -d "$f" > "${f%.b64}.crt" done # Identify the new root CA (latest notAfter): openssl x509 -in ca_1.crt -noout -dates openssl x509 -in ca_2.crt -noout -dates - Buat gabungan truststore yang berisi CA root saat ini dan yang baru, lalu gunakan untuk permintaan pengujian Anda:
cat ca_1.crt ca_2.crt > cacert-combined.crt curl -is -H "Host: $ENV_GROUP_HOSTNAME" \ https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \ --cacert cacert-combined.crt \ --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
Jika permintaan ini berhasil, deploy
cacert-combined.crtsebagai truststore klien Anda. Truststore gabungan akan terus memvalidasi sertifikat saat ini hari ini dan akan memvalidasi sertifikat baru setelah peralihan.
Setelah peralihan (biasanya dalam beberapa hari setelah tanggal peralihan), konfirmasi rotasi dengan memverifikasi bahwa koneksi masih berhasil saat Anda hanya memercayai sertifikat baru:
curl -is -H "Host: $ENV_GROUP_HOSTNAME" \ https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \ --cacert NEW_CA_FILE \ --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
Jika permintaan ini berhasil, Anda dapat menghapus CA root lama dengan aman dari truststore Anda.
Notifikasi
Apigee mengirimkan notifikasi kepada pemilik project dan pemilik organisasi project Google Cloud Anda di awal setiap tahap rotasi. Setiap notifikasi mencakup nama panggung, tanggal panggung akan diterapkan ke organisasi Anda, dan link ke halaman ini.
| Notifikasi | Tindakan pelanggan yang direkomendasikan |
|---|---|
| 1. Sertifikat baru dipublikasikan (~1 tahun sebelum masa berlaku habis) |
Ambil CA root baru dari
caCertificates[] dan tambahkan ke setiap truststore klien
yang saat ini memercayai CA root Apigee. Lihat
Cara mempersiapkan rotasi. |
| 2. Migrasi sistem sertifikat entitas akhir (~60 hari sebelum masa berlaku habis) |
Pastikan semua klien Anda memercayai CA root baru sebelum tahap ini diterapkan di wilayah Anda. Setelah tahap ini, klien yang hanya memercayai CA root lama tidak dapat terhubung. |
| 3. Sertifikat lama ditarik (~30 hari sebelum masa berlaku berakhir) |
Setelah tahap ini diterapkan ke semua wilayah Anda, Anda dapat menghapus CA root lama dengan aman dari truststore klien Anda. |
| 4. Rotasi selesai (pada tanggal habis masa berlaku asli) |
Tindakan tidak diperlukan. CA root lama telah dihapus secara permanen dan CA root baru adalah satu-satunya CA root untuk organisasi Anda. |
Jika Anda tidak menerima notifikasi rotasi dan Anda menggunakan salah satu pola akses yang tercantum dalam Siapa yang terpengaruh oleh rotasi, hubungi dukungan Apigee untuk mengonfirmasi penerima notifikasi untuk organisasi Anda.
Langkah berikutnya
- Tinjau Opsi untuk mengonfigurasi TLS guna memahami semua opsi penghentian TLS di Apigee.
- Tinjau Memanggil proxy API dengan akses khusus internal untuk mengetahui kumpulan lengkap pola panggilan akses internal.
- Lihat
referensi API
organizations.getuntuk mengetahui skema lengkap kolomcaCertificates[].