Formatta i certificati per GKE Identity Service
Questo documento spiega come formattare i certificati durante la configurazione di GKE Identity Service. Queste indicazioni possono aiutarti a evitare e risolvere i problemi relativi ai certificati dei provider di identità durante l'utilizzo del servizio.
Panoramica
GKE Identity Service è un servizio di autenticazione che ti consente di accedere al tuo
cluster GKE tramite provider di identità come OIDC e LDAP. Durante l'instaurazione di una connessione TLS, GKE Identity Service convalida il certificato del server del fornitore e verifica se il issuer
del certificato del fornitore è uno dei certificati dell'autorità di certificazione (CA) configurati.
Stringa certificateAuthorityData
in ClientConfig
Il certificato CA utilizzato per verificare l'identità del fornitore è configurato nel campo certificateAuthorityData
in ClientConfig, come mostrato negli esempi riportati di seguito.
Esempio per LDAP
... ldap: host: HOST_NAME certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA connectionType: CONNECTION_TYPE ...
dove CERTIFICATE_AUTHORITY_DATA contiene un certificato CA con codifica Base64 e formato PEM per il server LDAP. Includi la stringa risultante in certificateAuthorityData
come singola riga. Deve essere fornito solo per le connessioni ldaps
e startTLS
.
Esempio per OIDC
... oidc: certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA ...
dove CERTIFICATE_AUTHORITY_DATA contiene una stringa del certificato con codifica base64 e formato PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData
come singola riga.
Valore del certificato con codifica Base64
Definita in RFC 4864, la codifica base64 standard utilizza i caratteri da A
a Z
, da a
a z
, da 0
a 9
, +
e /
.
I dati vengono riempiti utilizzando =
.
Codifica il certificato CA per GKE Identity Service
I certificati SSL hanno formati come DER, PEM e PFX. I file PFX sono in genere criptati con una password.
Quando configuri Identity Service for GKE con un provider di identità, i certificati non devono essere protetti da password. Questo perché non è disponibile un flusso di lavoro per specificare la password per la decrittografia. Per questo motivo, assicurati di convertire i certificati da altri formati in file con codifica PEM utilizzando uno strumento a riga di comando openssl
su qualsiasi sistema Linux o Unix.
Se sono presenti più certificati, concatenali e importali come un unico file PEM.
Esempio di formato PEM
Ecco un esempio di certificato codificato 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-----
Tieni presente i seguenti dettagli nell'esempio:
- I delimitatori del certificato iniziano con BEGIN CERTIFICATE e terminano con END CERTIFICATE.
- Il numero di trattini utilizzati nei delimitatori è fisso.
- Il valore del certificato utilizza la codifica Base64 standard (RFC 4864) con a capo (dopo 64 caratteri).
- Le interruzioni di riga (\n) non sono visibili. Non inserire un carattere di escape per il carattere di nuova riga.
Specifica il valore del certificato in ClientConfig
Per specificare il valore del certificato in ClientConfig:
- Determina il formato con codifica PEM per il certificato CA.
- Codifica il file PEM in Base64 come da RFC 4864.
Assicurati che l'output sia una singola stringa lunga senza interruzioni di riga, come nel seguente esempio di file PEM con codifica Base64:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNNekNDQVp5Z0F3SUJBZ0lKQUxpUG5Wc3ZxOGRzTUEwR0NTcUdTSWIzRFFFQkJRVUFNRk14Q3pBSkJnTlYKQkFZVEFsVlRNUXd3Q2dZRFZRUUlFd05tYjI4eEREQUtCZ05WQkFjVEEyWnZiekVNTUFvR0ExVUVDaE1EWm05dgpNUXd3Q2dZRFZRUUxFd05tYjI4eEREQUtCZ05WQkFNVEEyWnZiekFlRncweE16QXpNVGt4TlRRd01UbGFGdzB4Ck9EQXpNVGd4TlRRd01UbGFNRk14Q3pBSkJnTlZCQVlUQWxWVE1Rd3dDZ1lEVlFRSUV3Tm1iMjh4RERBS0JnTlYKQkFjVEEyWnZiekVNTUFvR0ExVUVDaE1EWm05dk1Rd3dDZ1lEVlFRTEV3Tm1iMjh4RERBS0JnTlZCQU1UQTJadgpiekNCbnpBTkJna3Foa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBemRHZnhpOUNOYk1mMVVVY3ZEUWg3TVlCCk92ZUlIeWMwRTBLSWJoaks1RmtDQlU0Q2lacmJmSGFnYVc3WkVjTjB0dDNFdnBiT014eGMvWlFVMldOL3Mvd1AKeHBoMHBTZnNmRnNUS000UmhUV0QydjRmZ2sreFppS2QxcDArTDRoVHRwd25FdzB1WFJWZDBraTZtdXdWNXkvUAorNUZIVWVsZHErcGdUY2d6dUs4Q0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnTGtNQTBHQ1NxR1NJYjNEUUVCCkJRVUFBNEdCQUppREFBdFkwbVFRZXV4V2R6TFJ6WG1qdmRTdUw5R295VDNCRi9qU25weHo1LzU4ZGJhOHBXZW4KdjNwajRQM3c1RG9Pc28wcnprWnkyakVzRWl0bFZNMm1MU2JRcE1NK01VVlFDUW9pRzZXOXh1Q0Z1eFNyd1BJUwpwQXFFQXVWNEROb3hRS0tXbWhWditKMHB0TVdEMjVQbnB4ZXE1c1h6Z2hmSm5zbEpsUU5ECi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
- Fornisci questo valore del certificato per il campo
certificateAuthorityData
in ClientConfig.
Certificati CA per i certificati intermedi
Un certificato intermedio svolge il ruolo di "catena di attendibilità" tra un certificato dell'entità finale e un certificato radice. Questo valore del certificato deve essere formattato come stringa con codifica base64 quando viene utilizzato in ClientConfig. Per creare una singola stringa, concatena i certificati completi con codifica PEM in una singola stringa e poi codificali in base64.
Ecco un esempio di una catena di attendibilità contigua che inizia con il certificato principale.
ServerCert -> IntermediateCA -> DeptCA -> RootCA
In questo esempio, ServerCert
è emesso da IntermediateCA
, che è emesso da DeptCA
, che a sua volta è emesso da RootCA
.
Le catene di attendibilità parziali sono supportate da GKE Identity Service. Ciò significa che puoi fornire catene con solo alcuni dei certificati, ad esempio:
IntermediateCA -> DeptCA -> RootCA
IntermediateCA -> DeptCA
ServerCert
Quando Identity Service for GKE è configurato solo con una catena parziale, verifica l'identità del server cercando di abbinare i certificati nella catena parziale all'identità presentata dal server.
Le versioni precedenti di GKE Identity Service, ad esempio le versioni precedenti a Google Distributed Cloud 1.28.200, richiedono una catena di attendibilità contigua che parta dal certificato principale per verificare il server. Esempi di catene parziali supportate dalle versioni precedenti di GKE Identity Service:
ServerCert -> IntermediateCA -> DeptCA -> RootCA
IntermediateCA -> DeptCA -> RootCA
DeptCA -> RootCA
Se riscontri problemi di verifica dei certificati e non sai quale versione di GKE Identity Service stai utilizzando, prova ad aggiungere un certificato radice alla catena di attendibilità, se non ne hai uno, per verificare se è questa la causa del problema.
Specifica la catena di attendibilità dei certificati in ClientConfig
Per specificare la catena di attendibilità dei certificati in ClientConfig:
- Determina il formato con codifica PEM per i certificati CA che vuoi includere nella catena di certificati.
Concatena i file PEM in un unico file in modo che il certificato radice sia alla fine del file. Ecco l'output:
-----BEGIN CERTIFICATE----- IntermediateCA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- DeptCA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- RootCA certificate -----END CERTIFICATE-----
Codifica il file concatenato in Base64. Assicurati che il file contenga una singola riga di testo codificato in base64.
Fornisci questo valore del certificato per il campo
certificateAuthorityData
in ClientConfig.