Dokumen ini menjelaskan cara memformat sertifikat untuk autentikasi dari penyedia identitas pihak ketiga. Panduan ini dapat membantu Anda menghindari dan memecahkan masalah terkait sertifikat penyedia identitas saat menggunakan layanan. Dokumen ini hanya berlaku untuk jenis cluster yang didukung.
Ringkasan
Anda dapat mengonfigurasi autentikasi dari penyedia identitas seperti OIDC dan LDAP
ke cluster Anda. Saat membuat koneksi TLS, cluster memvalidasi sertifikat server penyedia, dan memverifikasi apakah issuer sertifikat penyedia adalah salah satu sertifikat certificate authority (CA) yang dikonfigurasi.
certificateAuthorityData string di ClientConfig
Sertifikat CA yang digunakan untuk memverifikasi identitas penyedia dikonfigurasi di kolom certificateAuthorityData di ClientConfig, seperti yang ditunjukkan dalam contoh berikut.
Contoh untuk LDAP
... ldap: host: HOST_NAME certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA connectionType: CONNECTION_TYPE ...
dengan CERTIFICATE_AUTHORITY_DATA berisi sertifikat CA berformat PEM yang dienkode ke base64 untuk server LDAP. Sertakan string
yang dihasilkan dalam certificateAuthorityData sebagai satu baris. Ini hanya boleh diberikan untuk koneksi ldaps dan startTLS.
Contoh untuk OIDC
... oidc: certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA ...
dengan CERTIFICATE_AUTHORITY_DATA berisi string sertifikat berenkode base64 dan berformat PEM untuk penyedia identitas. Sertakan string
yang dihasilkan dalam certificateAuthorityData sebagai satu baris.
Nilai sertifikat berenkode base64
Didefinisikan dalam RFC 4864, encoding base64 standar menggunakan karakter A hingga Z, a hingga z, 0 hingga 9, +, dan /.
Data diisi menggunakan =.
Encode sertifikat CA
Sertifikat SSL memiliki format seperti DER, PEM, dan PFX. File PFX biasanya dienkripsi dengan sandi.
Saat Anda mengonfigurasi penyedia identitas, sertifikat tidak boleh dilindungi sandi. Hal ini karena tidak ada alur kerja yang tersedia untuk menentukan sandi untuk dekripsi. Oleh karena itu, pastikan Anda mengonversi sertifikat dari format lain ke file yang dienkode PEM menggunakan alat command line openssl di sistem Linux atau Unix mana pun.
Jika ada beberapa sertifikat, gabungkan sertifikat dan impor sertifikat ini sebagai satu file PEM.
Contoh format PEM
Berikut adalah contoh sertifikat yang dienkode PEM:
-----BEGIN CERTIFICATE----- MIICMzCCAZygAwIBAgIJALiPnVsvq8dsMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV BAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNVBAcTA2ZvbzEMMAoGA1UEChMDZm9v MQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2ZvbzAeFw0xMzAzMTkxNTQwMTlaFw0x ODAzMTgxNTQwMTlaMFMxCzAJBgNVBAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNV BAcTA2ZvbzEMMAoGA1UEChMDZm9vMQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2Zv bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzdGfxi9CNbMf1UUcvDQh7MYB OveIHyc0E0KIbhjK5FkCBU4CiZrbfHagaW7ZEcN0tt3EvpbOMxxc/ZQU2WN/s/wP xph0pSfsfFsTKM4RhTWD2v4fgk+xZiKd1p0+L4hTtpwnEw0uXRVd0ki6muwV5y/P +5FHUeldq+pgTcgzuK8CAwEAAaMPMA0wCwYDVR0PBAQDAgLkMA0GCSqGSIb3DQEB BQUAA4GBAJiDAAtY0mQQeuxWdzLRzXmjvdSuL9GoyT3BF/jSnpxz5/58dba8pWen v3pj4P3w5DoOso0rzkZy2jEsEitlVM2mLSbQpMM+MUVQCQoiG6W9xuCFuxSrwPIS pAqEAuV4DNoxQKKWmhVv+J0ptMWD25Pnpxeq5sXzghfJnslJlQND -----END CERTIFICATE-----
Perhatikan detail berikut dalam contoh:
- Pembatas sertifikat dimulai dengan BEGIN CERTIFICATE dan diakhiri dengan END CERTIFICATE.
- Jumlah tanda hubung yang digunakan dalam pembatas sudah tetap.
- Nilai sertifikat menggunakan encoding base64 standar (RFC 4864) dengan jeda baris (setelah 64 karakter).
- Pecahan baris (\n) tidak terlihat. Jangan mengganti karakter baris baru.
Tentukan nilai sertifikat di ClientConfig
Untuk menentukan nilai sertifikat di ClientConfig, lakukan hal berikut:
- Tentukan format yang dienkode PEM untuk sertifikat CA.
- Lakukan enkode base64 pada file PEM sesuai dengan RFC 4864.
Pastikan outputnya berupa satu string panjang tanpa jeda baris, seperti dalam contoh file PEM berenkode base64 berikut:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNNekNDQVp5Z0F3SUJBZ0lKQUxpUG5Wc3ZxOGRzTUEwR0NTcUdTSWIzRFFFQkJRVUFNRk14Q3pBSkJnTlYKQkFZVEFsVlRNUXd3Q2dZRFZRUUlFd05tYjI4eEREQUtCZ05WQkFjVEEyWnZiekVNTUFvR0ExVUVDaE1EWm05dgpNUXd3Q2dZRFZRUUxFd05tYjI4eEREQUtCZ05WQkFNVEEyWnZiekFlRncweE16QXpNVGt4TlRRd01UbGFGdzB4Ck9EQXpNVGd4TlRRd01UbGFNRk14Q3pBSkJnTlZCQVlUQWxWVE1Rd3dDZ1lEVlFRSUV3Tm1iMjh4RERBS0JnTlYKQkFjVEEyWnZiekVNTUFvR0ExVUVDaE1EWm05dk1Rd3dDZ1lEVlFRTEV3Tm1iMjh4RERBS0JnTlZCQU1UQTJadgpiekNCbnpBTkJna3Foa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBemRHZnhpOUNOYk1mMVVVY3ZEUWg3TVlCCk92ZUlIeWMwRTBLSWJoaks1RmtDQlU0Q2lacmJmSGFnYVc3WkVjTjB0dDNFdnBiT014eGMvWlFVMldOL3Mvd1AKeHBoMHBTZnNmRnNUS000UmhUV0QydjRmZ2sreFppS2QxcDArTDRoVHRwd25FdzB1WFJWZDBraTZtdXdWNXkvUAorNUZIVWVsZHErcGdUY2d6dUs4Q0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnTGtNQTBHQ1NxR1NJYjNEUUVCCkJRVUFBNEdCQUppREFBdFkwbVFRZXV4V2R6TFJ6WG1qdmRTdUw5R295VDNCRi9qU25weHo1LzU4ZGJhOHBXZW4KdjNwajRQM3c1RG9Pc28wcnprWnkyakVzRWl0bFZNMm1MU2JRcE1NK01VVlFDUW9pRzZXOXh1Q0Z1eFNyd1BJUwpwQXFFQXVWNEROb3hRS0tXbWhWditKMHB0TVdEMjVQbnB4ZXE1c1h6Z2hmSm5zbEpsUU5ECi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - Berikan nilai sertifikat ini untuk kolom
certificateAuthorityDatadi ClientConfig.
Sertifikat CA untuk sertifikat perantara
Sertifikat perantara berperan sebagai "rantai kepercayaan" antara sertifikat entitas akhir dan sertifikat root. Nilai sertifikat ini harus diformat sebagai string berenkode base64 saat digunakan di ClientConfig. Untuk membuat satu string, gabungkan sertifikat lengkap berenkode PEM menjadi satu string, lalu lakukan encoding base64.
Berikut adalah contoh rantai kepercayaan yang berdekatan yang dimulai dengan sertifikat root.
ServerCert -> IntermediateCA -> DeptCA -> RootCA
Dalam contoh ini, ServerCert dikeluarkan oleh IntermediateCA, yang dikeluarkan oleh DeptCA, yang pada gilirannya dikeluarkan oleh RootCA.
Rantai kepercayaan parsial didukung. Artinya, Anda dapat menyediakan rantai hanya dengan beberapa sertifikat, seperti:
IntermediateCA -> DeptCA -> RootCA
IntermediateCA -> DeptCA
ServerCert
Jika hanya rantai parsial yang dikonfigurasi, cluster akan memverifikasi identitas server dengan mencoba mencocokkan sertifikat dalam rantai parsial dengan identitas yang ditampilkan oleh server.
Versi sebelumnya, seperti versi sebelum Google Distributed Cloud 1.28.200, memerlukan rantai kepercayaan yang berkesinambungan yang dimulai dari sertifikat root untuk memverifikasi server. Contoh rantai parsial yang didukung oleh versi sebelumnya:
ServerCert -> IntermediateCA -> DeptCA -> RootCA
IntermediateCA -> DeptCA -> RootCA
DeptCA -> RootCA
Jika Anda mengalami masalah verifikasi sertifikat dan tidak tahu versi yang Anda gunakan, coba tambahkan sertifikat root ke rantai kepercayaan Anda jika Anda tidak memilikinya untuk melihat apakah ini penyebab masalahnya.
Menentukan rantai kepercayaan sertifikat di ClientConfig
Untuk menentukan rantai kepercayaan sertifikat di ClientConfig Anda, lakukan hal berikut:
- Tentukan format berenkode PEM untuk sertifikat CA yang ingin Anda sertakan dalam rantai sertifikat.
Gabungkan file PEM menjadi satu file sehingga sertifikat root berada di akhir file. Berikut tampilan outputnya:
-----BEGIN CERTIFICATE----- IntermediateCA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- DeptCA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- RootCA certificate -----END CERTIFICATE-----
Lakukan enkode base64 pada file yang digabungkan. Pastikan file berisi satu baris teks berenkode base64.
Berikan nilai sertifikat ini untuk kolom
certificateAuthorityDatadi ClientConfig.