Knowledge Center Monthly Newsletter - June 2025
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post's top contributors.
Como uso certificados TLS para ativar conexões HTTPS para meus aplicativos Amazon EKS?
Quero usar certificados TLS para ativar conexões HTTPS para meus aplicativos Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrição
Para ativar as conexões HTTPS para seus aplicativos Amazon EKS, conclua as seguintes tarefas:
- Obtenha um certificado TLS válido para seu domínio personalizado.
- Use o tipo de serviço do balanceador de carga para expor seu serviço Kubernetes ou use o AWS Load Balancer Controller para expor seu objeto de entrada do Kubernetes.
- Associe seu domínio personalizado ao DNS do balanceador de carga.
Resolução
Obtenha um certificado TLS válido para seu domínio personalizado
Para obter um certificado TLS válido para seu domínio personalizado, conclua as seguintes etapas:
-
Solicite um certificado do AWS Certificate Manager (ACM) para o seu domínio personalizado ou faça o upload do seu próprio certificado TLS para o ACM.
-
Identifique o ARN do certificado que você deseja usar com o ouvinte HTTPS do balanceador de carga.
-
Para criar uma implantação NGINX de amostra, execute o comando a seguir:
$ kubectl create deploy web --image=nginx --port 80 --replicas=3
-
Para verificar se os pods do Kubernetes estão implantados no seu cluster do Amazon EKS, execute o comando a seguir:
$ kubectl get pods -l app=web
Observação: Os pods são rotulados como app=web. Use esse rótulo como um seletor para que o objeto de serviço identifique um conjunto de pods.
Use o tipo de serviço do balanceador de carga para expor seu serviço Kubernetes
Observação: para usar o objeto de entrada para expor o seu aplicativo, pule para a seção Expor seu serviço de Kubernetes usando o objeto de entrada.
Para usar o tipo de serviço do balanceador de carga para expor seu serviço Kubernetes, conclua as seguintes etapas:
-
Para criar um arquivo de manifesto service.yaml, use o tipo de serviço LoadBalancer:
cat <<EOF > loadbalancer.yaml apiVersion: v1 kind: Service metadata: name: lb-service annotations: # Note that the backend talks over HTTP. service.beta.kubernetes.io/aws-load-balancer-type: external # TODO: Fill in with the ARN of your certificate. service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:{region}:{user id}:certificate/{id} # Run TLS only on the port named "https" below. service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https" # By default In-tree controller will create a Classic LoadBalancer if you require a NLB uncomment below annotation. # service.beta.kubernetes.io/aws-load-balancer-type: "nlb" spec: selector: app: web ports: - name: http port: 80 targetPort: 80 - name: https port: 443 targetPort: 80 type: LoadBalancer EOF
-
Edite a anotação service.beta.kubernetes.io/aws-load-balancer-tls-cert para incluir o ARN do ACM.
-
Para aplicar o arquivo loadbalancer.yaml, execute o comando a seguir:
$ kubectl create -f loadbalancer.yaml
-
Pule para a seção Associar seu domínio ao DNS do balanceador de carga.
Use o objeto de entrada para expor seu serviço Kubernetes
Observação: a resolução a seguir pressupõe que você tenha instalado o AWS Load Balancer Controller em seu cluster Amazon EKS. Para obter mais informações, consulte aws-load-balancer-controller no site do GitHub.
Para usar o objeto de entrada para expor seu serviço Kubernetes, conclua as seguintes etapas:
- Crie um serviço de tipo Kubernetes NodePort baseado no exemplo a seguir:
Observação: o manifesto de entrada anterior escuta em HTTP e HTTPS, depois encerra o TLS no Application Load Balancer e, em seguida, redireciona HTTP para HTTPS.cat <<EOF > ingressservice.yaml apiVersion: v1 kind: Service metadata: name: web-nginx spec: ports: - port: 80 targetPort: 80 protocol: TCP type: NodePort selector: app: web --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: "web-nginx-ingress" annotations: # Below annotation is to specify if the loadbalancer is "internal" or "internet-facing" alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Fill in with the ARN of your certificate. alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx # TODO: Fill in the listening ports. alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' # Set HTTP to HTTPS redirects. Every HTTP listener configured is redirected to below mentioned port over HTTPS. alb.ingress.kubernetes.io/ssl-redirect: '443' labels: app: web spec: ingressClassName: alb rules: - http: paths: - path: / pathType: Prefix backend: service: name: "web-nginx" port: number: 80 EOF
- Para aplicar o arquivo ingressservice.yaml, execute o comando a seguir:
$ kubectl create -f ingressservice.yaml
Associe seu domínio personalizado ao DNS do balanceador de carga
Para associar seu domínio personalizado ao DNS do balanceador de carga, conclua as seguintes etapas:
-
Para retornar o URL de DNS do serviço de tipo LoadBalancer, execute o comando a seguir:
$ kubectl get service
-
Para retornar ao URL de DNS do serviço de tipo Entrar, execute o comando a seguir:
$ kubectl get ingress/web-nginx-ingress
-
Associe seu nome de domínio ao nome do seu balanceador de carga.
-
Em um navegador da web, teste o seu domínio personalizado com o seguinte protocolo HTTPS:
https://yourdomain.com

Conteúdo relevante
- feita há 3 meses
- feita há 3 meses
- feita há 5 meses