Esta
    é a documentação da Apigee e da Apigee híbrida.
        Não há documentação equivalente do
        
        Apigee Edge para esse tópico.
      
    
  
Sintoma
Um ApigeeIssue com Reason AIS_INGRESS_MTLS_CA_CERT_INVALID é exibido ao visualizar recursos no namespace apigee.
Mensagens de erro
  Depois de executar kubectl -n apigee get apigeeissues, um erro como este é exibido:
NAME SEVERITY REASON DOCUMENTATION AGE ca-cert-invalid-my-org-my-virtualhost ERROR AIS_INGRESS_MTLS_CA_CERT_INVALID https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID 5h18m
Causas possíveis
| Causa | Descrição | 
|---|---|
| O certificado de CA do mTLS da entrada não é codificado em PEM | O certificado de CA de mTLS de entrada configurado não é codificado em PEM. | 
| O certificado de CA da entrada mTLS está incorreto | O certificado de CA de mTLS de entrada configurado está incorreto. | 
Causa: o certificado de CA de mTLS de entrada não é codificado em PEM
  O certificado de CA de entrada mTLS armazenado no secret do Kubernetes referenciado por ApigeeRouteConfig não tem os blocos de texto de codificação PEM (ou eles estão corrompidos).
Diagnóstico
Execute este comando:
kubectl -n apigee describe apigeeissue ISSUE_NAME
  Em que ISSUE_NAME é o nome do problema. Por exemplo,
  ca-cert-invalid-my-org-my-virtualhost.
A saída será parecida com esta:
Name: ca-cert-invalid-my-org-my-virtualhost Namespace: apigee Labels: ais-reason=AIS_INGRESS_MTLS_CA_CERT_INVALID Annotations: <none> API Version: apigee.cloud.google.com/v1alpha1 Kind: ApigeeIssue Metadata: Creation Timestamp: 2023-06-12T17:03:43Z Generation: 1 Owner References: API Version: apigee.cloud.google.com/v1alpha2 Kind: ApigeeOrganization Name: my-org UID: 7e83a52c-ce00-4bed-98be-55835ada1817 Resource Version: 3281563 UID: adc775c2-376d-4bf9-9860-500b2b2b8273 Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is not PEM encoded Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID Reason: AIS_INGRESS_MTLS_CA_CERT_INVALID Severity: ERROR Events: <none>
Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is not PEM encoded
    O conteúdo de Spec.Details explica o nome do ApigeeRouteConfig que se refere ao secret do Kubernetes que contém o certificado de CA da mTLS de entrada, que não é codificado em PEM.
  
Resolução
- 
    
Use
kubectl describepara exibir o nome daApigeeRouteConfigque tem o certificado de CA de mTLS de entrada não codificado em PEM:kubectl -n apigee describe apigeeissue ISSUE_NAME
Em que ISSUE_NAME é o nome do problema. Por exemplo,
ca-cert-invalid-my-org-my-virtualhost.Neste exemplo, o
ApigeeRouteConfigmy-org-my-virtualhostreferencia o secretmy-org-my-virtualhost. - 
    
Determine o nome do
virtualhostnoApigeeRouteConfig.O nome do
ApigeeRouteConfigestá no formato:<Apigee organization>-<virtualhost name>.Neste exemplo,
my-orgé a organização da Apigee, e o nome do virtualhost émy-virtualhost. - 
    
Encontre o virtualhost correspondente no seu
overrides.yaml.virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway caCertPath: ./certs/ca.pem sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ... - 
    
Valide o conteúdo do arquivo fornecido pelo caminho declarado em
caCertPath. Verifique se o conteúdo tem os blocos de certificado inicial e final necessários. Exemplo:-----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIUSXeU0pQYRFzYlqZpKhNNJdBLFBIwDQYJKoZIhvcNAQEL ... <contents omitted> ... eWJyaWQuZTJlLmFwaWdlZWtzLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC MMM= -----END CERTIFICATE-----
 - 
    
Depois que o conteúdo e o formato do arquivo forem corrigidos, aplique a alteração ao virtualhost:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
 
Causa: o certificado de CA de entrada mTLS está incorreto
  O certificado de CA de entrada mTLS armazenado no secret do Kubernetes referenciado por
  ApigeeRouteConfig está incorreto.
Diagnóstico
Execute este comando:
kubectl -n apigee describe apigeeissue ISSUE_NAME
  Em que ISSUE_NAME é o nome do problema. Por exemplo,
  ca-cert-invalid-my-org-my-virtualhost.
A saída será parecida com esta:
Name: ca-cert-invalid-my-org-my-virtualhost Namespace: apigee Labels: ais-reason=AIS_INGRESS_MTLS_CA_CERT_INVALID Annotations: <none> API Version: apigee.cloud.google.com/v1alpha1 Kind: ApigeeIssue Metadata: Creation Timestamp: 2023-06-12T17:03:43Z Generation: 1 Owner References: API Version: apigee.cloud.google.com/v1alpha2 Kind: ApigeeOrganization Name: my-org UID: 7e83a52c-ce00-4bed-98be-55835ada1817 Resource Version: 3281563 UID: adc775c2-376d-4bf9-9860-500b2b2b8273 Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is invalid Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID Reason: AIS_INGRESS_MTLS_CA_CERT_INVALID Severity: ERROR Events: <none>
Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is invalid
    O conteúdo de Spec.Details explica o nome do ApigeeRouteConfig que se refere ao secret do Kubernetes que contém o certificado de CA da mTLS que está incorreto e não foi analisado.
  
Resolução
- 
    
Use
kubectl describepara exibir o nome daApigeeRouteConfigque tem o certificado de CA de entrada mTLS incorreto:kubectl -n apigee describe apigeeissue ISSUE_NAME
Em que ISSUE_NAME é o nome do problema. Por exemplo,
ca-cert-invalid-my-org-my-virtualhost.Neste exemplo, o
ApigeeRouteConfigmy-org-my-virtualhostreferencia o secretmy-org-my-virtualhost. - 
    
Determine o nome do
virtualhostnoApigeeRouteConfig.O nome do
ApigeeRouteConfigestá no formato:<Apigee organization>-<virtualhost name>.Neste exemplo,
my-orgé a organização da Apigee, e o nome do virtualhost émy-virtualhost. - 
    
Encontre o virtualhost correspondente no seu
overrides.yaml.virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway caCertPath: ./certs/ca.pem sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ... - 
    
Valide o conteúdo do arquivo fornecido pelo caminho declarado em
caCertPath. Verifique se o certificado está inteiro no conteúdo. Exemplo:-----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIUSXeU0pQYRFzYlqZpKhNNJdBLFBIwDQYJKoZIhvcNAQEL BQAwQDE+MDwGA1UEAww1bWF4bWlsbGlvbi1oeWJyaWQtc3RhZ2luZy1kZXYuaHli ... <contents omitted> ... 0TPPaik8U9dtFXMGT1DJkjPRPO0Jw5rlU8DKlNA/Kkv52aKJZNwB/cwmvoa/BFji PIPa9wY= -----END CERTIFICATE-----
 - 
    
Depois que o conteúdo e o formato do arquivo forem corrigidos, aplique a alteração ao virtualhost:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
 
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e entre em contato com o Atendimento ao cliente do Google Cloud:
- O ID do projeto Google Cloud .
 - O nome da organização da Apigee híbrida.
 - O campo 
Spec.DetailsdoApigeeIssue. - 
    (Opcional) Arquivo referenciado por 
caCertPathpara o virtualhost afetado.